ó
`¾Tc           @   s…   d  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 e f d	 „  ƒ  YZ d
 „  Z d S(   s±   
    werkzeug.testsuite.routing
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Routing tests.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   WerkzeugTestCase(   t   routing(   t   Response(   t   ImmutableDict(   t   create_environt   RoutingTestCasec           B   sU  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 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! d  „  Z" d! „  Z# d" „  Z$ d# „  Z% d$ „  Z& RS(%   c            sâ  t  j t  j d d d ƒt  j d d d ƒt  j d d d ƒg ƒ } | j d d ƒ ‰  ˆ  j d ƒ d i  f k sx t ‚ ˆ  j d ƒ d i  f k s™ t ‚ ˆ  j d ƒ d i  f k sº t ‚ |  j t  j ‡  f d	 †  ƒ |  j t  j ‡  f d
 †  ƒ | j d d ƒ ‰  y ˆ  j d ƒ Wn+ t  j k
 rB} | j	 d k sPt ‚ n X|  j
 d ƒ | j d d ƒ ‰  y ˆ  j d ƒ Wn+ t  j k
 r } | j	 d k s®t ‚ n X|  j
 d ƒ | j d d ƒ ‰  y ˆ  j d d i d d 6ƒWn+ t  j k
 r} | j	 d k st ‚ n X|  j
 d ƒ | j d d ƒ ‰  y ˆ  j d d d ƒWn+ t  j k
 ro} | j	 d k s}t ‚ n X|  j
 d ƒ | j t d d ƒ ƒ ‰  y ˆ  j ƒ  Wn+ t  j k
 rÐ} | j	 d k sÞt ‚ n X|  j
 d ƒ d  S(   Nt   /t   endpointt   indexs   /foot   foos   /bar/t   bars   example.orgc              s   ˆ  j  d ƒ S(   Ns   /bar(   t   match(    (   t   adapter(    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   <lambda>!   s    c              s   ˆ  j  d ƒ S(   Ns   /blub(   R   (    (   R   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   "   s    s   /tests   /bars   http://example.org/test/bar/s   Expected request redirects   http://example.org/bar/t
   query_argst   muhahat   ahas"   http://example.org/bar/?aha=muhahas
   aha=muhahas   /bar?foo=bars   http://example.org/s   http://example.org/bar/?foo=bar(   t   rt   Mapt   Rulet   bindR   t   AssertionErrort   assert_raisest   RequestRedirectt   NotFoundt   new_urlt   failt   bind_to_environR   (   t   selft   mapt   e(    (   R   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_basic_routing   sR    !!!c         C   sÙ   t  d ƒ } |  j | d d ƒ t j t j d d d ƒt j d d d ƒg ƒ } | j | ƒ } |  j | j d ƒ d i  f ƒ |  j | j ƒ  d i  f ƒ |  j | j d ƒ d i  f ƒ |  j t j | j d ƒ d  S(   Ns   /foot	   PATH_INFOR   R	   s   /barR
   s   /bars(	   R   t   assert_strict_equalR   R   R   R   R   R   R   (   R   t   environt   mt   a(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_environ_defaultsM   s    3c         C   s©   t  d ƒ } t j t j d d d ƒt j d d d ƒg ƒ } | j | ƒ } |  j | j d ƒ d i  f ƒ |  j | j d ƒ d i  f ƒ |  j t j | j d ƒ d  S(   Nu   /Ð»Ð¾ÑˆÐ°Ð´ÑŒu   /R   R   t   horseu   /Ð±Ð°Ñ€ÑÑƒÐº(	   R   R   R   R   R   R!   R   R   R   (   R   R"   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_environ_nonascii_pathinfoW   s    c            s¿  t  j t  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d	 ƒt  j d
 d d ƒt  j d d d ƒt  j d d d d d ƒg ƒ } | j d d d d ƒ‰  ˆ  j d i  ƒ d k sÉ t ‚ ˆ  j d i  ƒ d k sç t ‚ ˆ  j d i d d 6ƒ d k st ‚ ˆ  j d	 i d d 6ƒ d k s1t ‚ ˆ  j d i d d 6ƒ d k sVt ‚ ˆ  j d i d d 6ƒ d k s{t ‚ ˆ  j d i  ƒ d k s™t ‚ |  j t  j ‡  f d  †  ƒ | j d d! d d ƒ‰  ˆ  j d i  ƒ d" k sët ‚ ˆ  j d i  ƒ d# k s	t ‚ ˆ  j d i d d 6ƒ d$ k s.t ‚ ˆ  j d	 i d d 6ƒ d% k sSt ‚ ˆ  j d i d d 6ƒ d& k sxt ‚ ˆ  j d i d d 6ƒ d' k st ‚ ˆ  j d i  ƒ d( k s»t ‚ d  S()   NR   R   R   s   /fooR	   s
   /bar/<baz>R
   s   /bar/<int:bazi>t   baris   /bar/<float:bazf>t   barfs   /bar/<path:bazp>t   barps   /hehet   blaht	   subdomains   example.orgs   http://example.org/s   http://example.org/foot   blubt   bazs   http://example.org/bar/blubi2   t   bazis   http://example.org/bar/50g®Gázê?t   bazfs   http://example.org/bar/0.815s   la/dit   bazps   http://example.org/bar/la/dic              s   ˆ  j  d ƒ S(   Nt   urks(   t   build(    (   R   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   u   s    s   /tests   http://example.org/test/s   http://example.org/test/foos    http://example.org/test/bar/blubs   http://example.org/test/bar/50s!   http://example.org/test/bar/0.815s!   http://example.org/test/bar/la/dis
   /test/hehe(   R   R   R   R   R3   R   R   t
   BuildError(   R   R   (    (   R   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_basic_buildingb   s2    !%%%%%%%%c            s*  t  j t  j d d i d d 6d d ƒt  j d d d ƒg ƒ } | j d d	 ƒ ‰  ˆ  j d ƒ d i d d 6f k sz t ‚ |  j t  j ‡  f d
 †  ƒ ˆ  j d ƒ d i d d 6f k s¾ t ‚ ˆ  j d i  ƒ d k sÜ t ‚ ˆ  j d i d d 6ƒ d k st ‚ ˆ  j d i d d 6ƒ d k s&t ‚ d  S(   Ns   /foo/t   defaultsi   t   pageR   R	   s   /foo/<int:page>s   example.orgR   c              s   ˆ  j  d ƒ S(   Ns   /foo/1(   R   (    (   R   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   ˆ   s    s   /foo/2i   (	   R   R   R   R   R   R   R   R   R3   (   R   R   (    (   R   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_defaults€   s    ((%c         C   sB  t  j t  j d d d ƒt  j d d d ƒt  j d d d ƒg ƒ } | j d d ƒ } | j d ƒ d i  f k sx t ‚ | j d	 ƒ d i d
 d 6f k s  t ‚ | j d ƒ d i d d 6d d
 6f k sÏ t ‚ | j d i  ƒ d k sí t ‚ | j d i d
 d 6ƒ d	 k st ‚ | j d i d
 d 6d d
 6ƒ d k s>t ‚ d  S(   Ns   /fooR   R	   s   /<path:bar>R
   s   /<path:bar>/<path:blub>s   example.orgR   s   /blubR-   s   /he/het   hes	   /blub/bar(   R   R   R   R   R   R   R3   (   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_greedyŽ   s    !(/%c            sÚ  t  j t  j d d i d d 6d d ƒt  j d d d ƒt  j d	 d d
 ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒg ƒ } | j d d ƒ ‰  ˆ  j d ƒ d i d d 6f k st ‚ |  j t  j ‡  f d †  ƒ ˆ  j d ƒ d i  f k sYt ‚ ˆ  j d ƒ d
 i d d
 6f k st ‚ ˆ  j d ƒ d i d d 6f k s©t ‚ ˆ  j d  ƒ d i d d 6f k sÑt ‚ ˆ  j d! ƒ d i d" d 6d# d$ 6f k s t ‚ ˆ  j d% ƒ d i d" d 6d# d$ 6f k s/t ‚ ˆ  j d& ƒ d i d' d 6f k sWt ‚ ˆ  j d( ƒ d i d) d* 6f k st ‚ ˆ  j d+ ƒ d i d) d* 6d, d 6f k s®t ‚ ˆ  j d- ƒ d i d. d/ 6f k sÖt ‚ d  S(0   NR   R6   t	   FrontPaget   nameR   R7   s   /Specialt   specials   /<int:year>t   years   /<path:name>s   /<path:name>/editt   editpages   /<path:name>/silly/<path:name2>t	   sillypages$   /<path:name>/silly/<path:name2>/editt   editsillypages   /Talk:<path:name>t   talks   /User:<username>t   users   /User:<username>/<path:name>t   userpages   /Files/<path:file>t   filess   example.orgc              s   ˆ  j  d ƒ S(   Ns
   /FrontPage(   R   (    (   R   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   ¯   s    s   /2007i×  s
   /Some/Pages	   Some/Pages   /Some/Page/edits   /Foo/silly/bart   FooR
   t   name2s   /Foo/silly/bar/edits   /Talk:Foo/Bars   Foo/Bars   /User:thomast   thomast   usernames   /User:thomas/projects/werkzeugs   projects/werkzeugs!   /Files/downloads/werkzeug/0.2.zips   downloads/werkzeug/0.2.zipt   file(   R   R   R   R   R   R   R   R   (   R   R   (    (   R   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt	   test_pathž   s6    (!(((//((#c            sû   t  d ƒ ‰ t j t j d d d ƒt j d d d ƒg ƒ } | j ˆ ƒ ‰ d  ‰  ‡  f d †  ‰ t ‡ ‡ ‡ f d † ‰ ˆ d ƒ j d k s– t ‚ ˆ d	 ƒ j	 d
 k s± t ‚ t j
 ƒ  ‰  |  j t j
 ‡ f d †  ƒ ˆ d t ƒ j	 d k s÷ t ‚ d  S(   NR   R   t   roots   /foo/R	   c            s+   ˆ  d  k	 r ˆ  ‚ n  t t |  | f ƒ ƒ S(   N(   t   NoneR   t   repr(   R   t   values(   t
   raise_this(    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt	   view_funcÆ   s    	c            s"   t  j ˆ  j ˆ |  d | ƒˆ ƒ S(   Nt   catch_http_exceptions(   R   t
   force_typet   dispatch(   t   pt   q(   R   RQ   t   env(    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   Ê   s   s   ('root', {})s   /fooi-  c              s
   ˆ  d ƒ S(   Ns   /bar(    (    (   RT   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   Ð   s    s   /bari”  (   R   R   R   R   R   RM   t   Falset   dataR   t   status_codeR   R   t   True(   R   R   (    (   RP   RT   RQ   RW   R   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_dispatch½   s    c         C   s  i d d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6} t  j t  j d d d d d ƒg ƒ } | j | d d ƒ} | j d ƒ d i  f k s” t ‚ | j d d t ƒd k sµ t ‚ | j d ƒ d k sÐ t ‚ d | d <| j | d d ƒ} | j d ƒ d k s
t ‚ d  S(   Ns   wiki.example.comt	   HTTP_HOSTs   web0.example.comt   SERVER_NAMEt   80t   SERVER_PORTt    t   SCRIPT_NAMER    t   GETt   REQUEST_METHODt   https   wsgi.url_schemeR   R   R   R,   t   wikit   server_names   example.comt   force_externals   http://wiki.example.com/s   admin.example.com(   R   R   R   R   R   R   R3   R[   (   R   RW   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt!   test_http_host_before_server_nameÓ   s     
'!!
c         C   s   t  j t  j d d d ƒg d t d d „  ƒ} | j d d ƒ } | j d i d d	 6d
 d 6d d 6d t ƒd k s{ t ‚ d  S(   NR   R   R   t   sort_parameterst   sort_keyc         S   s   |  d S(   Ni   (    (   t   x(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR   é   s    t	   localhosti   Rl   i
   t   yi   t   zRh   s    http://localhost/?y=10&x=20&z=30(   R   R   R   R[   R   R3   R   (   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt"   test_adapter_url_parameter_sortingç   s
    $$c         C   s}   t  j t  j d ƒ g ƒ } | j d d ƒ } y | j d ƒ Wn+ t  j k
 rk } | j d k sy t ‚ n X|  j d ƒ d  S(   Nu   /Ã¶Ã¤Ã¼/Rm   R   u   /Ã¶Ã¤Ã¼s$   http://localhost/%C3%B6%C3%A4%C3%BC/s#   expected request redirect exception(	   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_request_direct_charset_bugî   s    c         C   s–   t  j t  j d d i d d 6ƒt  j d ƒ g ƒ } | j d d ƒ } y | j d ƒ Wn+ t  j k
 r„ } | j d	 k s’ t ‚ n X|  j d
 ƒ d  S(   Nu   /fooR6   i*   R
   u   /foo/<int:bar>Rm   R   u   /foo/42s   http://localhost/foos#   expected request redirect exception(	   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_request_redirect_defaultø   s    c         C   s¨   t  j t  j d d i d d 6d d ƒt  j d d d ƒg ƒ } | j d	 d
 d d ƒ} y | j d ƒ Wn+ t  j k
 r– } | j d k s¤ t ‚ n X|  j d ƒ d  S(   Nu   /fooR6   i*   R
   R,   t   testu   /foo/<int:bar>t   otherRm   R   u   /foo/42s   http://test.localhost/foos#   expected request redirect exception(	   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt'   test_request_redirect_default_subdomain  s    %c         C   sd   t  j d d d ƒ} t  j | g ƒ } | j d d ƒ } | j d d t ƒ| i  f k s` t ‚ d  S(   Ns   /foo/R   R	   Rm   R   t   return_rule(   R   R   R   R   R   R[   R   (   R   t   ruleR   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_adapter_match_return_rule  s    c         C   s  d } t  j t  j d d d ƒt  j d d d d d ƒg ƒ } t d d | ƒ } | j | d | ƒ} | j ƒ  d i  f k s… t ‚ t d d	 | ƒ } | j | d | ƒ} | j ƒ  d i  f k sË t ‚ t d d | ƒ } | j | d d
 ƒ} | j d k st ‚ d  S(   Ns   example.invalidR   R   R   t   altR,   s
   http://%s/Rg   s   http://alt.%s/R	   s	   <invalid>(   R   R   R   R   R   R   R   R,   (   R   Rg   R   RW   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_server_name_interpolation  s    !c      	   C   s³   t  j d i d d 6d d g t d t d  ƒ } | j ƒ  } | j | j k sR t ‚ | j j	 d ƒ | j | j k sz t ‚ | j j
 d ƒ d | j d <| j | j k s¯ t ‚ d  S(   Ns   /foot   muht   mehRl   t   POSTRc   R   (   R   R   RX   R[   RM   t   emptyt   __dict__R   t   methodst   addt   discardR6   (   R   Rw   t   rule2(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_rule_emptying%  s    c         C   sš  t  j t  j d t  j d d d ƒt  j d d d ƒt  j d d d ƒg ƒ t  j d	 t  j d
 d d ƒt  j d d d ƒg ƒ t  j d t  j d d d ƒt  j d d d ƒg ƒ g ƒ } t  j | d d ƒ | d d ƒ | d d ƒ | d d ƒ g ƒ } t g  | j ƒ  D] } | j	 | j
 | j f ^ q	ƒ } | d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP g k s–t ‚ d  S(Q   Ns
   /test/$apps   /foo/R   t
   handle_foos   /bar/t
   handle_bars   /baz/t
   handle_bazs   ${app}s   /${app}-blahR
   s   /${app}-mehR.   s   $apps   /blaht   x_bars   /meht   x_bazt   appt   test1t   test2t   test3t   test4s   /test/test1/bar/Ra   s   /test/test1/baz/s   /test/test1/foo/s   /test/test2/bar/s   /test/test2/baz/s   /test/test2/foo/s   /test/test3/bar/s   /test/test3/baz/s   /test/test3/foo/s   /test/test4/bar/s   /test/test4/baz/s   /test/test4/foo/s   /test1-blaht   test1bars
   /test1-meht   test1bazs   /test2-blaht   test2bars
   /test2-meht   test2bazs   /test3-blaht   test3bars
   /test3-meht   test3bazs   /test4-blaht   test4bars
   /test4-meht   test4baz(   s   /blahR‹   Rˆ   (   s   /blahRŒ   Rˆ   (   s   /blahR   Rˆ   (   s   /blahRŽ   Rˆ   (   s   /mehR‹   R‰   (   s   /mehRŒ   R‰   (   s   /mehR   R‰   (   s   /mehRŽ   R‰   (   s   /test/test1/bar/Ra   R†   (   s   /test/test1/baz/Ra   R‡   (   s   /test/test1/foo/Ra   R…   (   s   /test/test2/bar/Ra   R†   (   s   /test/test2/baz/Ra   R‡   (   s   /test/test2/foo/Ra   R…   (   s   /test/test3/bar/Ra   R†   (   s   /test/test3/baz/Ra   R‡   (   s   /test/test3/foo/Ra   R…   (   s   /test/test4/bar/Ra   R†   (   s   /test/test4/baz/Ra   R‡   (   s   /test/test4/foo/Ra   R…   (   s   /test1-blahRa   R   (   s
   /test1-mehRa   R   (   s   /test2-blahRa   R‘   (   s
   /test2-mehRa   R’   (   s   /test3-blahRa   R“   (   s
   /test3-mehRa   R”   (   s   /test4-blahRa   R•   (   s
   /test4-mehRa   R–   (   R   t   RuleTemplatet   SubmountR   t   EndpointPrefixt	   SubdomainR   t   sortedt
   iter_rulesRw   R,   R   R   (   R   t   testcaset   url_mapRl   t   out(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_rule_templates0  s^    			!1c         C   sW   t  j t  j d d d ƒg ƒ } | j d ƒ } |  j | j d i d d 6ƒ d ƒ d  S(   Ns   /<foo>R   R	   s   example.comi*   s   /42(   R   R   R   R   t   assert_equalR3   (   R   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_non_string_partsj  s    c         C   s  t  j t  j d d d ƒt  j d d d ƒt  j d d d ƒt  j d d d	 ƒt  j d
 d d ƒt  j d d d ƒt  j d d d ƒt  j d d d d i d d 6ƒt  j d d d ƒt  j d d d ƒt  j d d d ƒg ƒ } | j d ƒ } | j d ƒ d i  f k st ‚ | j d ƒ d i d d 6f k s:t ‚ | j d ƒ d i d d 6f k sbt ‚ | j d ƒ d	 i  f k sƒt ‚ | j d
 ƒ d i  f k s¤t ‚ | j d ƒ d i d  d! 6f k sÌt ‚ | j d" ƒ d i d  d! 6f k sôt ‚ | j d ƒ d i d d 6f k st ‚ | j d# ƒ d i d$ d 6f k sDt ‚ | j d ƒ d i  f k set ‚ | j d% ƒ d i d& d' 6d( d 6f k s”t ‚ | j d ƒ d k s¯t ‚ | j d i d d 6ƒ d k sÔt ‚ | j d i d) d 6ƒ d* k sùt ‚ | j d	 ƒ d k st ‚ | j d ƒ d
 k s/t ‚ | j d i d  d! 6ƒ d k sTt ‚ | j d i d  d! 6ƒ d" k syt ‚ | j d i d d 6ƒ d k sžt ‚ | j d i d$ d 6ƒ d# k sÃt ‚ | j d ƒ d k sÞt ‚ | j d i d& d' 6d( d 6ƒ d% k s
t ‚ d  S(+   NR   R   R   s   /<int:blub>t   an_ints   /<blub>t   a_strings   /foo/t   nesteds   /foobar/t	   nestedbars   /foo/<path:testing>/t   nested_shows   /foo/<path:testing>/editt   nested_edits   /users/t   usersR6   i   R7   s   /users/page/<int:page>s   /fooxt   fooxs   /<path:bar>/<path:blub>t   barx_path_paths   example.coms   /42i*   R-   s   /blubs   /foo/1/2/3/s   1/2/3t   testings   /foo/1/2/3/edits   /users/page/2i   s   /1/2/3t   1R
   s   2/3Rs   s   /test(   R   R   R   R   R   R   R3   (   R   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_complex_routing_rulesq  sF    !((!!((((!/%%%%%%c         C   s,  d t  j f d „  ƒ  Y} t t  j j t ƒ s4 t ‚ | t  j d d d ƒt  j d d d ƒt  j d d d	 ƒg d
 i t  j d 6ƒ} | j d d ƒ } | j	 d ƒ d i d d 6f k sÀ t ‚ | j	 d ƒ d i d d 6f k sè t ‚ | j	 d ƒ d	 i d d	 6f k st ‚ d t  j j k s(t ‚ d  S(   Nt   MyMapc           B   s'   e  Z e j j j ƒ  Z e j e d  <RS(   R	   (   t   __name__t
   __module__R   R   t   default_converterst   copyt   UnicodeConverter(    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR¯   š  s   s
   /a/<foo:a>R   R$   s
   /b/<foo:b>t   bs   /c/<c>t   ct
   convertersR
   s   example.orgR   s   /a/1R­   s   /b/2t   2s   /c/3t   3R	   (
   R   R   t
   isinstanceR²   R   R   R   R´   R   R   (   R   R¯   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_default_converters™  s    (((c         C   s›   t  j t  j d d d ƒg ƒ } | j d d d d ƒ} | j d i d d	 6d
 d 6ƒ d k se t ‚ | j d i d d	 6d
 d 6d t ƒd k s— t ‚ d  S(   Ns   /bar/<float:bazf>R   R)   s   example.orgR   R,   R+   g®Gázê?R0   g      ð?t   bifs$   http://example.org/bar/0.815?bif=1.0t   append_unknowns   http://example.org/bar/0.815(   R   R   R   R   R3   R   RX   (   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_build_append_unknown©  s    c         C   s£  t  j t  j d d d d d g ƒt  j d d d d d g ƒt  j d d d	 d d
 g ƒt  j d d d d d g ƒt  j d d d d d
 g ƒg ƒ } | j d ƒ } | j d ƒ d k sÀ t ‚ | j d d d ƒd k sá t ‚ | j d i d d 6ƒ d k st ‚ | j d	 ƒ d k s!t ‚ | j d	 d d
 ƒd k sBt ‚ | j d ƒ d k s]t ‚ | j d d d ƒd k s~t ‚ | j d d d
 ƒd k sŸt ‚ d  S(   NR   R   R   R€   Rc   s   /<name>t
   hello_names   /selectt   hello_selectR}   s   /search_gett   searchs   /search_posts   example.comt   methodR	   R<   s   /foo(   R   R   R   R   R3   R   (   R   R   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_method_fallback³  s    $!%!!c         C   sž   t  j t  j d d d g d d ƒt  j d d d g d d ƒg ƒ } | j d	 ƒ } | j d d
 d ƒd i  f k s{ t ‚ |  j t  j | j d d
 d ƒd  S(   Ns   /getR€   Rc   R   R$   s   /postR}   Rµ   s   example.orgRÂ   t   HEAD(   R   R   R   R   R   R   R   t   MethodNotAllowed(   R   Rž   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_implicit_headÅ  s    $'c         C   s„   t  j t  j d d d ƒg ƒ } | j d ƒ } | j d i d d 6ƒ d k sU t ‚ | j d i d d 6d t ƒd	 k s€ t ‚ d  S(
   Ns   /<foo>R   Rl   s   example.orgs   x:yR	   s   /x:yRh   s   http://example.org/x:y(   R   R   R   R   R3   R   R[   (   R   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_protocol_joining_bugÏ  s
    !%c         C   sy   t  j t  j d d d d g ƒt  j d d d g ƒg ƒ } | j d ƒ } t | j d ƒ ƒ d d d g k su t ‚ d  S(   Ns   /<foo>R€   Rc   RÄ   s   /fooR}   s   example.org(   R   R   R   R   R›   t   allowed_methodsR   (   R   R#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_allowed_methods_queryingÖ  s    c         C   sg   t  j t  j d d d ƒg ƒ } | j d d ƒ } | j d i  d t ƒ} | d k sc t | ƒ ‚ d  S(   NR   R   R   s   example.org:5000Rh   s   http://example.org:5000/(   R   R   R   R   R3   R[   R   (   R   R   R   t	   built_url(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt    test_external_building_with_portÜ  s
    c         C   ss   t  j t  j d d d ƒg ƒ } | j t d d ƒ d d ƒ} | j d i  d t ƒ} | d k so t | ƒ ‚ d  S(   NR   R   R   s   http://example.org:5000/Rg   s   example.org:5000Rh   (   R   R   R   R   R   R3   R[   R   (   R   R   R   RÊ   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt0   test_external_building_with_port_bind_to_environä  s    	c         C   s^   t  j t  j d d d ƒg ƒ } t d d ƒ } | j | d d ƒ} | j d k sZ t ‚ d  S(   NR   R   R   s   http://example.org:5000/Rg   s   example.orgs	   <invalid>(   R   R   R   R   R   R,   R   (   R   R   R"   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pytA   test_external_building_with_port_bind_to_environ_wrong_servernameï  s
    c         C   sÿ   t  j d ƒ \ } } | d k s' t ‚ | i d d 6d d 6k sG t ‚ t  j d ƒ \ } } | rj | sp t ‚ t  j d ƒ \ } } | d k s— t ‚ | s¤ t ‚ t  j d
 ƒ \ } } | t t d  f k sÔ t ‚ t  j d ƒ \ } } | d k sû t ‚ d  S(   Nu   test, a=1, b=3.0Rs   i   R$   g      @Rµ   Ra   s   a, b, c,R¶   s   True, False, Nones   "foo", u"bar"R	   R
   (   s   test(   R$   Rµ   R¶   (   s   foos   bar(   R   t   parse_converter_argsR   R[   RX   RM   (   R   t   argst   kwargs(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_converter_parser÷  s     c            s|  t  j t  j d d d ƒt  j d d d d t ƒt  j d d i d d	 6d d
 ƒt  j d d i d d	 6d t d d
 ƒt  j d d d
 ƒt  j d d t d d
 ƒg ƒ } | j d ƒ ‰  d  ‡  f d † } | d d ƒ | d d ƒ | d d ƒ | d d ƒ | d d i d d 6ƒ ˆ  j d ƒ d k s.t ‚ ˆ  j d
 i d d	 6ƒ d k sSt ‚ ˆ  j d
 i d d	 6ƒ d k sxt ‚ d  S(   NR   R   R   s   /index.htmlt   aliass   /users/R6   i   R7   R©   s   /users/index.htmls   /users/page/<int:page>s   /users/page-<int:page>.htmls   example.comc            s_   y ˆ  j  |  d | ƒWn/ t j k
 rH } | j d | k s[ t ‚ n Xt s[ t d ƒ ‚ d  S(   NR   s   http://example.coms   expected redirect(   R   R   R   R   R   RX   (   t   pathR   RÏ   R   (   R$   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   ensure_redirect  s
    s   /users/page-2.htmls   /users/page/2s   /users/page-1.htmls   /users/?foo=barR
   R	   i   (   R   R   R   R[   R   RM   R3   R   (   R   R#   RÔ   (    (   R$   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_alias_redirects
  s$    !%c         C   s«  x¤d D]œ} t  j t  j | d d i d d 6t d 6d d	 ƒt  j | d
 d i t d 6d d	 ƒt  j | d d i d d 6t d 6d d	 ƒt  j | d d i t d 6d d	 ƒg ƒ } | j d ƒ } | j | d ƒ d	 i d d 6t d 6f k sø t ‚ | j | d ƒ d	 i d d 6t d 6f k s+t ‚ | j | d ƒ d	 i d d 6t d 6f k s^t ‚ | j | d ƒ d	 i d d 6t d 6f k s‘t ‚ | j d	 i d d 6t d 6ƒ | d k sÁt ‚ | j d	 i d d 6t d 6ƒ | d k sñt ‚ | j d	 i t d 6ƒ | d k st ‚ | j d	 i d d 6t d 6ƒ | d k sJt ‚ | j d	 i d d 6t d 6ƒ | d k szt ‚ | j d	 i t d 6ƒ | d k s t ‚ q Wd  S(   NRa   s   /aaaR   R6   i   R	   R
   R   Rl   s
   /<int:foo>s   /bar/s   /bar/<int:foo>s   example.coms   /2i   s   /bar/2(   Ra   s   /aaa(	   R   R   R   RX   R[   R   R   R   R3   (   R   t   prefixR#   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_double_defaults(  s"    *#*,333300)00c         C   sô  t  j t  j d d d d d ƒt  j d d d d d ƒt  j d d	 i d
 d 6d d d d ƒt  j d d d d d ƒg d t ƒ} | j d ƒ } | j d ƒ d i d d 6f k s¹ t ‚ | j d ƒ d i d d 6d
 d 6f k sè t ‚ y | j d ƒ Wn+ t  j k
 r&} | j d k s9t ‚ n Xt	 s9t d ƒ ‚ | j d ƒ } | j d ƒ d i d d 6f k spt ‚ | j d ƒ d i d d 6d d 6f k sŸt ‚ y | j d ƒ Wn+ t  j k
 rÝ} | j d k sðt ‚ n Xt	 sðt d ƒ ‚ d  S(   NR   R   R   t   hosts   www.<domain>RE   s   files.<domain>s   /foo/R6   i   R7   Rl   s   /<int:page>t   host_matchings   www.example.coms   example.comt   domains   /foos   http://www.example.com/foo/s   expected redirects   files.example.coms   /2i   s   /1(
   R   R   R   R[   R   R   R   R   R   RX   (   R   R#   R$   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_host_matching>  s,    %	(/(/c         C   sì   t  j t  j d d d d d ƒg ƒ } t ƒ  } d | d <| d <| j | d	 d
 ƒ} | j d ƒ d i  f k sx t ‚ t ƒ  } d | d <d | d <| d =| j | d	 d
 ƒ} y | j ƒ  Wn t  j k
 rÕ n Xt sè t d ƒ ‚ d  S(   NR   R   R   R,   R	   s   FOO.EXAMPLE.COMR^   R]   Rg   s   example.coms	   127.0.0.1t   5000R`   s   Expected not found exception(	   R   R   R   R   R   R   R   R   RX   (   R   R#   RW   R$   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_server_name_casingZ  s     !	!	

c         C   sD   t  j d ƒ } d | _ t ƒ  } |  j | j | ƒ j | j ƒ d  S(   Ns   http://www.google.com/i3  (   R   R   t   codeR   R!   t   get_responseRZ   (   R   t   excRW   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt$   test_redirect_request_exception_codep  s    		c         C   s°   t  j t  j d d i d d 6d d ƒt  j d d d ƒg ƒ } | j d ƒ } y | j d	 ƒ Wn< t  j k
 rž } | j i  ƒ } |  j | j d
 d ƒ n X|  j	 d ƒ d  S(   Ns   /<category>R6   i   R7   R   t   categorys   /<category>/page/<int:page>s   example.coms   /foo bar/page/1t   locationu   http://example.com/foo%20bars   Expected redirect(
   R   R   R   R   R   R   Rß   R!   t   headersR   (   R   Rž   R   R   t   response(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_redirect_path_quotingv  s    c         C   sz  t  j t  j d d d ƒt  j d d d ƒg ƒ } | j d ƒ } y | j d ƒ Wn) t  j k
 r~ } |  j | j d ƒ n X| j d ƒ \ } } |  j | d ƒ |  j | i  ƒ y | j d	 ƒ Wn) t  j k
 rð } |  j | j d
 ƒ n X| j d ƒ \ } } |  j | d ƒ |  j | i  ƒ | j d i  d t	 ƒ} |  j | d ƒ | j d i  d t	 ƒ} |  j | d
 ƒ d  S(   Nu   /Ð²Ð¾Ð¹Ñ‚Ð¸/R   t   enteru	   /foo+bar/t   foobaru   â˜ƒ.example.comu   /Ð²Ð¾Ð¹Ñ‚Ð¸s:   http://xn--n3h.example.com/%D0%B2%D0%BE%D0%B9%D1%82%D0%B8/u   /foo+bars#   http://xn--n3h.example.com/foo+bar/Rh   (
   R   R   R   R   R   R   R!   R   R3   R[   (   R   R#   R$   R   R   RO   t   url(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_unicode_rules†  s,    c         C   sS   t  j t  j d d d ƒt  j d d d ƒg ƒ } t | ƒ } |  j | d ƒ d  S(   Nu   /watR   Rç   u   /woopRè   s7   Map([<Rule '/woop' -> foobar>, <Rule '/wat' -> enter>])(   R   R   R   RN   R!   (   R   R#   t   rv(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   test_map_repr¤  s    	('   R°   R±   R   R%   R'   R5   R8   R:   RK   R\   Ri   Rp   Rq   Rr   Ru   Rx   Rz   R„   R    R¢   R®   R»   R¾   RÃ   RÆ   RÇ   RÉ   RË   RÌ   RÍ   RÑ   RÕ   R×   RÛ   RÝ   Rá   Ræ   Rê   Rì   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyR      sJ   	6	
									
						:		(		
		
													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/routing.pyRñ   ®  s    (   t   __doc__Rí   t   werkzeug.testsuiteR    t   werkzeugR   R   t   werkzeug.wrappersR   t   werkzeug.datastructuresR   t   werkzeug.testR   R   Rñ   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/routing.pyt   <module>
   s   ÿ ÿ ›