î
¾?Tþ  ã               @   sò   d  d l  Z d  d l j j Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z d  d l m Z d d l m Z m Z Gd	 d
 „  d
 e ƒ Z Gd d „  d e ƒ Z Gd d „  d e ƒ Z Gd d „  d e ƒ Z d d „  Z d S)é    N)ÚManager)Úhandler)ÚBaseComponent)Ú
BaseServerÚ
Controller)Ú
Dispatcheré   )ÚurlopenÚurljoinc                   sF   e  Z d  Z d Z ‡  f d d †  Z e d d d ƒd d „  ƒ Z ‡  S)	ÚPrefixingDispatcherz3Forward to another Dispatcher based on the channel.c                s   t  t |  ƒ j d | ƒ d  S)NÚchannel)Úsuperr   Ú__init__)Úselfr   )Ú	__class__© ú4/home/prologic/work/circuits/tests/web/test_disps.pyr      s    zPrefixingDispatcher.__init__ÚrequestÚpriorityg      ð?c             C   s5   | j  j d ƒ } t d |  j | ƒ } | | _  d  S)Nú/z/%s/)ÚpathÚstripr
   r   )r   Úeventr   Úresponser   r   r   r   Ú_on_request   s    zPrefixingDispatcher._on_request)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   )r   r   r      s   r   c               @   s"   e  Z d  Z d Z d d „  Z d S)Ú	DummyRootr   c             C   s   d S)NzNot usedr   )r   r   r   r   Úindex   s    zDummyRoot.indexN)r   r   r   r   r    r   r   r   r   r      s   r   c               @   s"   e  Z d  Z d Z d d „  Z d S)ÚRoot1z/site1c             C   s   d S)NzHello from site 1!r   )r   r   r   r   r    '   s    zRoot1.indexN)r   r   r   r   r    r   r   r   r   r!   #   s   r!   c               @   s"   e  Z d  Z d Z d d „  Z d S)ÚRoot2z/site2c             C   s   d S)NzHello from site 2!r   )r   r   r   r   r    /   s    zRoot2.indexN)r   r   r   r   r    r   r   r   r   r"   +   s   r"   c        	      C   s“  t  ƒ  }  t d d d ƒ} | j |  ƒ t d d ƒ j | ƒ t d d ƒ j | ƒ t ƒ  j |  ƒ t d d d ƒ} | j |  ƒ t d d ƒ j | ƒ t d d ƒ j | ƒ t ƒ  j |  ƒ t ƒ  j |  ƒ |  j ƒ  t	 | j
 j d d ƒ} | j ƒ  } d } | | k } | sªt j d | f d | | f ƒ i t j | ƒ d 6d t j ƒ  k sgt j | ƒ rvt j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } t	 | j
 j d d ƒ} | j ƒ  } d } | | k } | s…t j d | f d | | f ƒ i t j | ƒ d 6d t j ƒ  k sBt j | ƒ rQt j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } d  S)Nr   r   Zsite1Ú	localhostZsite2Útimeouté   s   Hello from site 1!ú==ú%(py0)s == %(py3)sÚpy3ÚsÚpy0Ú úassert %(py5)sÚpy5s   Hello from site 2!)z	localhostr   )r&   )r'   r,   )r&   )r'   r,   )r   r   Úregisterr   r   r!   r"   r   Ústartr	   ÚhttpÚbaseÚreadÚ
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚAssertionErrorÚ_format_explanationÚNone)	ÚmanagerZserver1Zserver2Úfr)   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6r   r   r   Ú
test_disps3   s>    	
   l   
   l   rB   )Úbuiltinsr6   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter3   Úcircuits.core.managerr   Zcircuits.core.handlersr   Zcircuits.core.componentsr   Úcircuits.webr   r   Z#circuits.web.dispatchers.dispatcherr   Úhelpersr	   r
   r   r   r!   r"   rB   r   r   r   r   Ú<module>   s     