î
¾?T™  ã               @   sª   d  d l  Z d  d l j j Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z d d l m Z m Z Gd d „  d e ƒ Z d d	 „  Z d
 d „  Z d d „  Z d d „  Z d S)é    N)Ú
Controller)Ú	ForbiddenÚNotFoundÚRedirecté   )ÚurlopenÚ	HTTPErrorc               @   sL   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S)ÚRootc             C   s   d S)NzHello World!© )Úselfr
   r
   ú9/home/prologic/work/circuits/tests/web/test_exceptions.pyÚindex   s    z
Root.indexc             C   s   t  d ƒ ‚ d  S)Nú/)r   )r   r
   r
   r   Útest_redirect   s    zRoot.test_redirectc             C   s   t  ƒ  ‚ d  S)N)r   )r   r
   r
   r   Útest_forbidden   s    zRoot.test_forbiddenc             C   s   t  ƒ  ‚ d  S)N)r   )r   r
   r
   r   Útest_notfound   s    zRoot.test_notfoundc             C   s   d |  j  j d <t ƒ  ‚ d  S)Nzapplication/jsonzContent-Type)ÚresponseÚheadersÚ	Exception)r   r
   r
   r   Útest_contenttype   s    zRoot.test_contenttypeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r
   r
   r
   r   r	   	   s
   r	   c             C   sà   t  d |  j j j ƒ } | j ƒ  } d } | | k } | sÒ t j d | f d | | f ƒ i t j | ƒ d 6d t j	 ƒ  k s t j
 | ƒ rž t j | ƒ n d d 6} d i | d
 6} t t j | ƒ ƒ ‚ n  t } } d  S)Nz%s/test_redirects   Hello World!ú==ú%(py0)s == %(py3)sÚpy3ÚsÚpy0Ú úassert %(py5)sÚpy5)r   )r   r   )r   ÚserverÚhttpÚbaseÚreadÚ
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚAssertionErrorÚ_format_explanationÚNone)ÚwebappÚfr   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6r
   r
   r   r      s       l   r   c       	      C   s3  y t  d |  j j j ƒ WnÍt k
 rê} z­| j } d } | | k } | sö t j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k s³ t j | ƒ rÂ t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } | j } d } | | k } | sÊt j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k s‡t j | ƒ r–t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } WYd  d  } ~ XnE Xd } | s)d i t j | ƒ d 6} t t j | ƒ ƒ ‚ n  t } d  S)Nz%s/test_forbiddeni“  r   ú,%(py2)s
{%(py2)s = %(py0)s.code
} == %(py5)sr    Úpy2Úer   r   úassert %(py7)sÚpy7r   ú+%(py2)s
{%(py2)s = %(py0)s.msg
} == %(py5)sFúassert %(py1)sÚpy1)r   )r4   r7   )r   )r9   r7   r:   )r   r!   r"   r#   r   Úcoder%   r&   r'   r(   r)   r*   r+   r,   r-   Úmsg)	r.   r6   r1   Ú@py_assert4Ú@py_assert3r3   Ú@py_format8Ú@py_assert0Ú@py_format2r
   r
   r   r   "   s0    	    |   	    |   !    r   c       	      C   s3  y t  d |  j j j ƒ WnÍt k
 rê} z­| j } d } | | k } | sö t j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k s³ t j | ƒ rÂ t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } | j } d } | | k } | sÊt j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k s‡t j | ƒ r–t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } WYd  d  } ~ XnE Xd } | s)d i t j | ƒ d 6} t t j | ƒ ƒ ‚ n  t } d  S)Nz%s/test_notfoundi”  r   ú,%(py2)s
{%(py2)s = %(py0)s.code
} == %(py5)sr    r5   r6   r   r   úassert %(py7)sr8   z	Not Foundú+%(py2)s
{%(py2)s = %(py0)s.msg
} == %(py5)sFúassert %(py1)sr;   )r   )rC   rD   )r   )rE   rD   rF   )r   r!   r"   r#   r   r<   r%   r&   r'   r(   r)   r*   r+   r,   r-   r=   )	r.   r6   r1   r>   r?   r3   r@   rA   rB   r
   r
   r   r   ,   s0    	    |   	    |   !    r   c             C   s`  y t  d |  j j j ƒ } Wnøt k
 r} zØ| j } d } | | k } | sø t j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k sµ t j | ƒ rÄ t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } | j } d } | | k } | sÌt j d | f d | | f ƒ i t j | ƒ d 6t j | ƒ d 6d t	 j
 ƒ  k s‰t j | ƒ r˜t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  t } } } | j } | j } d } | | ƒ }	 d }
 |	 |
 k } | sët j d  | f d! |	 |
 f ƒ i t j | ƒ d 6d t	 j
 ƒ  k sht j | ƒ rwt j | ƒ n d d 6t j | ƒ d 6t j |
 ƒ d 6t j | ƒ d 6t j |	 ƒ d 6} d" i | d 6} t t j | ƒ ƒ ‚ n  t } } } }	 } }
 WYd  d  } ~ XnE Xd } | sVd# i t j | ƒ d 6} t t j | ƒ ƒ ‚ n  t } d  S)$Nz%s/test_contenttypeiô  r   ú,%(py2)s
{%(py2)s = %(py0)s.code
} == %(py5)sr    r5   r6   r   r   úassert %(py7)sr8   zInternal Server Errorú+%(py2)s
{%(py2)s = %(py0)s.msg
} == %(py5)szContent-Typez	text/htmlúg%(py8)s
{%(py8)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.headers
}.get
}(%(py6)s)
} == %(py11)sÚpy4Úpy11Úpy6Úpy8úassert %(py13)sÚpy13Fúassert %(py1)sr;   )r   )rG   rH   )r   )rI   rH   )r   )rJ   rO   rQ   )r   r!   r"   r#   r   r<   r%   r&   r'   r(   r)   r*   r+   r,   r-   r=   r   Úget)r.   r/   r6   r1   r>   r?   r3   r@   Ú@py_assert5Ú@py_assert7Ú@py_assert10Ú@py_assert9Ú@py_format12Ú@py_format14rA   rB   r
   r
   r   r   6   sF    	    |   	    |   	 	      ¬   -    r   )Úbuiltinsr(   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter%   Úcircuits.webr   Zcircuits.web.exceptionsr   r   r   Úhelpersr   r   r	   r   r   r   r   r
   r
   r
   r   Ú<module>   s     

