ó
`¾Tc           @€  sç   d  Z  d d l m Z d d l Z d d l m Z d d l m 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 d d l m Z m Z d e f d „  ƒ  YZ d „  Z d S(   s±   
    werkzeug.testsuite.utils
    ~~~~~~~~~~~~~~~~~~~~~~~~

    General utilities.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿ(   t   with_statementN(   t   datetime(   t   partial(   t   WerkzeugTestCase(   t   utils(   t   Headers(   t
   parse_datet	   http_date(   t   BaseResponse(   t   Clientt   run_wsgi_app(   t	   text_typet   implements_iteratort   GeneralUtilityTestCasec           B€  s˜   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C€  sá   t  j d ƒ } |  j d | j ƒ  ƒ |  j | j d d ƒ |  j | j d ƒ t  j d d ƒ } |  j d | j ƒ  ƒ |  j | j d d ƒ |  j | j d ƒ t  j d d	 ƒ } |  j | j d d ƒ |  j | j d	 ƒ d  S(
   Nu
   /fÃ¼Ã¼bÃ¤rs   /f%C3%BC%C3%BCb%C3%A4rt   Locationi.  u   http://â˜ƒ.net/i3  s   http://xn--n3h.net/s   http://example.com/i1  (   R   t   redirectt	   assert_int   get_datat   assert_equalt   headerst   status_code(   t   selft   resp(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_redirect   s    c         C€  sŒ   t  j d d ƒ } xI | j j ƒ  D]8 \ } } |  j t | ƒ t ƒ |  j t | ƒ t ƒ q" W|  j | j d d ƒ |  j | j d ƒ d  S(   Ns   http://example.com/i1  R   (	   R   R   R   t   itemsR   t   typet   strR   R   (   R   R   t   keyt   value(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt$   test_redirect_no_unicode_header_keys-   s    c         C€  sZ   d } t  j | ƒ } |  j d | j ƒ  ƒ d } t  j | ƒ } |  j d | j ƒ  ƒ d  S(   Ns3   http://example.com/?xss="><script>alert(1)</script>s   <script>alert(1)</script>s.   http://example.com/?xss="onmouseover="alert(1)s5   href="http://example.com/?xss="onmouseover="alert(1)"(   R   R   t   assert_not_inR   (   R   t   locationR   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_redirect_xss7   s    c         €  sê   g  ‰  d t  f ‡  f d †  ƒ  Y} | ƒ  } | j } | j } |  j | | k oZ d k n ƒ |  j ˆ  d g ƒ g  ‰  d t  f ‡  f d †  ƒ  Y} | ƒ  } | j } | j } |  j | | k oÍ d k n ƒ |  j ˆ  d g ƒ d  S(   Nt   Ac           €  s&   e  Z ‡  f d  †  Z e j e ƒ Z RS(   c         €  s   ˆ  j  d ƒ d S(   Ni*   (   t   append(   R   (   t   foo(    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   propC   s    (   t   __name__t
   __module__R$   R   t   cached_property(    (   R#   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR!   B   s   i*   c           €  s/   e  Z ‡  f d  †  Z e j e d d ƒZ [ RS(   c         €  s   ˆ  j  d ƒ d S(   Ni*   (   R"   (   R   (   R#   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   _propP   s    t   nameR$   (   R%   R&   R(   R   R'   R$   (    (   R#   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR!   O   s   (   t   objectR$   t   assert_trueR   (   R   R!   t   at   pt   q(    (   R#   s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_cached_property@   s    			#			#c         €  sÖ   d t  f d „  ƒ  Y} | ƒ  ‰  |  j ˆ  j d ƒ |  j ˆ  j d ƒ ‡  f d †  } |  j t | ƒ |  j ˆ  j d ƒ |  j ˆ  j d  ƒ |  j	 ˆ  j
 ƒ t d d d	 d
 d d d ƒ ˆ  _
 |  j ˆ  j d d ƒ d  S(   NR!   c           B€  s£   e  Z i d  d 6d d 6Z e j d ƒ Z e j d d ƒ Z e j d ƒ Z e j d d e ƒZ	 e j d d e ƒZ
 e j d d e e d	 e ƒZ e j d
 ƒ Z RS(   t   abct   stringt   42t   numbert   missingt   spamt	   load_funct   broken_numbert   datet	   read_onlyR#   N(   R%   R&   t   environR   t   environ_propertyR1   R4   R9   t   intR3   R7   t   NoneR   R   t   FalseR8   R#   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR!   ]   s   	R0   R5   c           €  s   d ˆ  _  d  S(   Nt	   something(   R9   (    (   R,   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_assignl   s    i*   iØ  i   i   i
   i    R8   s   Tue, 22 Jan 2008 10:00:00 GMT(   R*   R   R1   R4   t   assert_raisest   AttributeErrorR3   R7   R=   t   assert_is_noneR8   R   R:   (   R   R!   R@   (    (   R,   s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_environ_property\   s    	!c         C€  s   d t  f d „  ƒ  Y} |  j t j d  ƒ d ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d ƒ |  j t j d ƒ d	 ƒ |  j t j | d
 ƒ ƒ d
 ƒ d  S(   Nt   Fooc           B€  s   e  Z d  „  Z RS(   c         S€  s
   t  |  ƒ S(   N(   R   (   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   __html__w   s    (   R%   R&   RF   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyRE   v   s   t    i*   R2   s   <>s   &lt;&gt;s   "foo"s   &quot;foo&quot;s   <foo>(   R   R   R   t   escapeR=   (   R   RE   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_escapeu   s    c         C€  s   |  j  t j d ƒ d ƒ d  S(   Ns   &lt;&auml;&gt;u   <Ã¤>(   R   R   t   unescape(   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_unescape   s    c         €  s“  d „  } t  | i  ƒ \ } } } |  j | d ƒ |  j t | ƒ d g ƒ |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j t t t | ƒ ƒ g  ‰  t d t f ‡  f d	 †  ƒ  Yƒ ‰ ‡ f d
 †  } t  | i  ƒ \ } } } |  j | d ƒ |  j t | ƒ d g ƒ |  j t | ƒ d ƒ |  j t t t | ƒ ƒ | j	 ƒ  |  j t  | i  t
 ƒ d d g ƒ |  j t ˆ  ƒ d ƒ d  S(   Nc         s€  s#   | d d g ƒ d Vd Vd Vd  S(   Ns   200 OKs   Content-Types
   text/plaint   1t   2t   3(   s   Content-Types
   text/plain(    (   R:   t   start_response(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR#   ƒ   s    s   200 OKs   Content-Types
   text/plainRL   RM   RN   t	   CloseIterc           €  s2   e  Z d  „  Z d „  Z ‡  f d †  Z d „  Z RS(   c         S€  s   t  |  _ d  S(   N(   R>   t   iterated(   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   __init__”   s    c         S€  s   |  S(   N(    (   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   __iter__–   s    c         €  s   ˆ  j  d  ƒ d  S(   N(   R"   R=   (   R   (   t	   got_close(    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   close˜   s    c         S€  s"   |  j  r t ƒ  ‚ n  t |  _  d S(   Nt   bar(   RQ   t   StopIterationt   True(   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   __next__š   s    		(   R%   R&   RR   RS   RU   RY   (    (   RT   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyRP   ’   s   		c         €  s   | d d g ƒ ˆ  ƒ  S(   Ns   200 OKs   Content-Types
   text/plain(   s   Content-Types
   text/plain(    (   R:   RO   (   RP   (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyRV       s    RV   i    i   (   s   Content-Types
   text/plain(   s   Content-Types
   text/plain(   R
   R   t   listt   nextRA   RW   R   R   R*   RU   RX   t   len(   R   R#   t   app_itert   statusR   RV   (    (   RT   RP   s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_run_wsgi_app‚   s(    	
#c         C€  s  d d  l  } d d l m } |  j t j d ƒ | j ƒ |  j t j d ƒ | j ƒ |  j t j d ƒ | j ƒ |  j t j d t ƒ ƒ |  j t j d t ƒ ƒ |  j t j d ƒ | j ƒ |  j t j d ƒ | ƒ |  j	 t
 t j d	 ƒ |  j	 t
 t j d
 ƒ d  S(   Niÿÿÿÿ(   t   DebuggedApplications
   cgi.escapeu
   cgi.escapes
   cgi:escapet   XXXXXXXXXXXXs   cgi.XXXXXXXXXXXXu"   werkzeug.debug.DebuggedApplicationt   XXXXXXXXXXXXXXXXs   cgi.XXXXXXXXXX(   t   cgit   werkzeug.debugR`   t	   assert_isR   t   import_stringRH   RC   RX   RA   t   ImportError(   R   Rc   R`   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_import_string¯   s    c         C€  s,   |  j  t t j d ƒ ƒ d d d g ƒ d  S(   Ns   werkzeug.debugs   werkzeug.debug.consoles   werkzeug.debug.reprs   werkzeug.debug.tbtools(   R   RZ   R   t   find_modules(   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_find_modules¼   s    c         C€  sÜ  t  j } t  j } |  j | j d ƒ d ƒ |  j | j d d d ƒd ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j d	 d
 ƒ d ƒ |  j | j d	 d
 ƒ d ƒ |  j | j | j | j	 d
 ƒ | j
 d d ƒ ƒ ƒ d ƒ |  j | d ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j d t ƒ d ƒ |  j | j d d ƒ d ƒ |  j | j d d ƒ d ƒ |  j | j d d  ƒ d ƒ |  j | j d d  ƒ d ƒ |  j | j
 d ƒ d ƒ |  j | j
 d ƒ d ƒ d  S(   Ns   Hello Worlds   <p>Hello World</p>t   Testt   hreft   #s   <a href="#">Test</a>s   <br>s   <br />t   srcR#   s   <img src="foo">s   <img src="foo" />R   s   text/javascriptsT   <html><head><title>foo</title><script type="text/javascript"></script></head></html>s   <foo>s   &lt;foo&gt;t   disableds   <input disabled>s   <input disabled="disabled" />RG   s   <input>s	   <input />s   alert("Hello World");s&   <script>alert("Hello World");</script>s:   <script>/*<![CDATA[*/alert("Hello World");/*]]>*/</script>(   R   t   htmlt   xhtmlR   R-   R,   t   brt   imgt   headt   titlet   scriptt   inputRX   R=   (   R   Rp   Rq   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_html_builderÁ   s,    		c         C€  sY  d „  } d „  } d d „ } |  j  t j | d i  ƒ d i  f ƒ |  j  t j | d i d d 6ƒ d i  f ƒ |  j  t j | d i  ƒ d i  f ƒ |  j  t j | d i  ƒ d i  f ƒ |  j t j t j | d i  ƒ |  j  t j | d i d d	 6ƒ d i  f ƒ |  j t j t j | d i  d
 t ƒ|  j t j t j | d i d d 6d
 t ƒd  S(   Nc           S€  s   d  S(   N(   R=   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   <lambda>Þ   s    c         S€  s   d  S(   N(   R=   (   R,   t   b(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyRy   ß   s    i    c         S€  s   d  S(   N(   R=   (   R,   Rz   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyRy   à   s    i   i   Rz   i   t   ct
   drop_extraR,   (   i   i   (   i   i   (   i   (   i   i   (   i   (   i   i    (   i   i   (   i   i   (    (   i   i   (    (   i   (    (   R   R   t   validate_argumentsRA   t   ArgumentValidationErrorR>   (   R   t	   take_nonet   take_twot   take_two_one_default(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_validate_argumentsÝ   s    		%,%%,c         C€  sO   t  d d d g ƒ } d | d <d	 | d
 <|  j | t  d d d d g ƒ ƒ d  S(   Ns   Content-Types	   text/htmlRE   RV   t   Blubt   blaht   hehet   blubt   hummt   blafasel(   s   Content-Types	   text/html(   s   Foos   bar(   Rƒ   R„   (   s   Content-Types	   text/html(   s   Foos   bar(   R†   R…   (   Rˆ   R‡   (   R   R   (   R   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_header_set_duplication_bugð   s    

c         C€  s[   d „  } t  | t ƒ } | j d d d ƒ} |  j | j d ƒ |  j | j d d ƒ d  S(   Nc         S€  s   t  j |  ƒ |  | ƒ S(   N(   R   t   append_slash_redirect(   t   envt   sr(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   app   s    R#   t   base_urls   http://example.org/appi-  R   s   http://example.org/app/foo/(   R	   R   t   getR   R   R   (   R   R   t   clientt   response(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_append_slash_redirectÿ   s
    	c         C€  sO   t  j d „  ƒ } |  j | j d ƒ |  j | j d ƒ |  j | j t ƒ d  S(   Nc           S€  s   d S(   t   testingi*   (    (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR#     s    R“   R#   (   R   R'   R   t   __doc__R%   R&   (   R   R#   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_cached_property_doc  s    c         C€  sO   |  j  t j d ƒ d ƒ |  j  t j d ƒ d ƒ |  j  t j d ƒ d ƒ d  S(   Ns   My cool movie.movs   My_cool_movie.movs   ../../../etc/passwdt
   etc_passwdu   i contain cool Ã¼mlÃ¤uts.txts   i_contain_cool_umlauts.txt(   R   R   t   secure_filename(   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   test_secure_filename  s    (   R%   R&   R   R   R    R/   RD   RI   RK   R_   Rh   Rj   Rx   R‚   R‰   R’   R•   R˜   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR      s    		
					
		-								c          C€  s&   t  j ƒ  }  |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   (   t   suite(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyR     s    (   R”   t
   __future__R    R™   R   t	   functoolsR   t   werkzeug.testsuiteR   t   werkzeugR   t   werkzeug.datastructuresR   t   werkzeug.httpR   R   t   werkzeug.wrappersR   t   werkzeug.testR	   R
   t   werkzeug._compatR   R   R   R   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/utils.pyt   <module>
   s   ý