ó
`¾Tc           @€  s  d  Z  d d l m Z d d l Z d d l 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 m Z m Z m Z m Z m Z d d l m Z d d	 l m Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d  e f d! „  ƒ  YZ" d" e f d# „  ƒ  YZ# d$ e f d% „  ƒ  YZ$ d d& „ Z& d' e f d( „  ƒ  YZ' d) „  Z( d S(*   sW  
    werkzeug.testsuite.datastructures
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Tests the functionality of the provided Werkzeug
    datastructures.

    TODO:

    -   FileMultiDict
    -   Immutable types undertested
    -   Split up dict tests

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿ(   t   with_statementN(   t   contextmanager(   t   copyt   deepcopy(   t   datastructures(   t   iterkeyst
   itervaluest	   iteritemst	   iterlistst   iterlistvaluest	   text_typet   PY2(   t   WerkzeugTestCase(   t   BadRequestKeyErrort   NativeItermethodsTestCasec           B€  s   e  Z d  „  Z RS(   c         C€  s+  t  j d d d g ƒ d t f d „  ƒ  Yƒ } | ƒ  } d d d g } d	 d
 d g } t t | | ƒ ƒ } |  j t t | ƒ ƒ | ƒ |  j t t | ƒ ƒ | ƒ |  j t t | ƒ ƒ | ƒ |  j t t | d
 ƒ ƒ | d
 ƒ |  j t t | d
 ƒ ƒ | d
 ƒ |  j t t | d
 ƒ ƒ | d
 ƒ d  S(   Nt   keyst   valuest   itemst
   StupidDictc           B€  s,   e  Z d  d „ Z d  d „ Z d  d „ Z RS(   i   c         S€  s   t  d d d g | ƒ S(   Nt   at   bt   c(   t   iter(   t   selft   multi(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   %   s    c         S€  s   t  d d d g | ƒ S(   Ni   i   i   (   R   (   R   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   (   s    c         S€  s+   t  t t |  d | ƒt |  d | ƒƒ ƒ S(   NR   (   R   t   zipR   R   (   R   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   +   s    (   t   __name__t
   __module__R   R   R   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   #   s   R   R   R   i   i   i   (	   R   t   native_itermethodst   objectt   listR   t   assert_equalR   R   R   (   R   R   t   dt   expected_keyst   expected_valuest   expected_items(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt
   test_basic"   s    	##(   R   R   R$   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   !   s   t   MutableMultiDictBaseTestCasec           B€  s    e  Z d Z d  „  Z d „  Z RS(   c         C€  sò   |  j  } xâ t t j d ƒ D]Í } | ƒ  } | j d d d d d g ƒ | j d d j ƒ  ƒ t j | | ƒ } t j | ƒ } |  j t	 | ƒ t	 | ƒ ƒ |  j | | ƒ |  j t j | j
 d d	 ƒ ƒ | ƒ d
 | d <|  j | | ƒ q Wd  S(   Ni   t   fooi   i   i   t   bars   foo bar bazs   werkzeug.datastructurest   werkzeugt   blat   newkey(   t   storage_classt   ranget   picklet   HIGHEST_PROTOCOLt   setlistt   splitt   dumpst   loadsR   t   typet   replacet   assert_not_equal(   R   t   clst   protocolR    t   st   ud(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_pickle@   s    		
c      
   C€  så	  |  j  ƒ  } t | t ƒ s! t ‚ d" d# d$ d% d& d' d( d) g } |  j  | ƒ } |  j | d d ƒ |  j | d d ƒ |  j t ƒ  | d	 Wd  QX|  j | j d ƒ d ƒ |  j | j d ƒ d d d d g ƒ |  j | j d ƒ d d g ƒ |  j | j d
 ƒ g  ƒ d | d <|  j | j d ƒ d g ƒ | j	 d d d d g ƒ |  j | d d ƒ |  j | j d ƒ d d d g ƒ d d d g } | j	 d | ƒ | 2|  j | d d ƒ |  j | j
 d d ƒ d ƒ |  j | j d ƒ d g ƒ | d =| j	 d d d g ƒ | d =|  j t ƒ  | d Wd  QX| d =|  j | j d ƒ g  ƒ |  j t t | j ƒ  ƒ ƒ d d d g ƒ |  j t t t | ƒ ƒ ƒ d d d g ƒ |  j t t t | ƒ ƒ ƒ d d d g ƒ |  j t t t | ƒ ƒ ƒ d d d g ƒ |  j t t | j ƒ  ƒ ƒ d* d+ d, g ƒ |  j t t | j d t ƒ ƒ ƒ d- d. d/ d0 d1 g ƒ |  j t t t | ƒ ƒ ƒ d2 d3 d4 g ƒ |  j t t t | d t ƒƒ ƒ d5 d6 d7 d8 d9 g ƒ |  j t t | j ƒ  ƒ ƒ d d d d g f d d g f d d g f g ƒ |  j t t t | ƒ ƒ ƒ d d d d g f d d g f d d g f g ƒ | j ƒ  } |  j | d d ƒ |  j | j d ƒ d d d g ƒ t | ƒ } |  j | d d ƒ |  j | j d ƒ d d d g ƒ | j ƒ  } |  j | d d ƒ |  j | j d ƒ d d d g ƒ t | ƒ } |  j | d d ƒ |  j | j d ƒ d d d g ƒ |  j  d: d; d< g ƒ } | j | ƒ |  j | j d ƒ d d d d d g ƒ |  j | j d ƒ d g ƒ | } i d d 6d d 6} | j | ƒ |  j | j d ƒ d d d d g ƒ |  j | j d ƒ d g ƒ |  j | j d ƒ d ƒ d | k s\t ‚ |  j | j d ƒ d d d d g ƒ d | k s“t ‚ |  j | j d ƒ g  ƒ | j ƒ  } | d= d> g k sÐt ‚ | j ƒ  } | d d g f d d g f g k st ‚ |  j  i d d 6d d g d 6ƒ } |  j | j d d t ƒd ƒ |  j | j d d t ƒd d g ƒ |  j  d? d@ dA g ƒ } d t | ƒ k st ‚ d t | ƒ k sµt ‚ d t | ƒ k sÍt ‚ | j d d ƒ | j d d ƒ |  j | j d ƒ d d g ƒ | j d d ƒ |  j | j d d t ƒd d g ƒ |  j  ƒ  } | j
 d
 g  ƒ j d ƒ | j
 d
 g  ƒ j d ƒ |  j | d
 d d g ƒ |  j  ƒ  } d | d <| j d  d ƒ | j d  d ƒ |  j | j  ƒ  i d d 6d d  6ƒ |  j | j  d! t! ƒ i d g d 6d d g d  6ƒ |  j t ƒ  |  j  ƒ  j ƒ  Wd  QX|  j t ƒ  |  j  ƒ  j ƒ  Wd  QX|  j t" ƒ  |  j  ƒ  d Wd  QX|  j  ƒ  } d | d <| j	 d d d g ƒ |  j | j d ƒ d d g ƒ d  S(B   NR   i   R   i   R    i   i   R   t   et   xi*   t   ui   iÿÿÿÿiþÿÿÿR   i   t   yi    t   missingt   4t   2t   3R3   s   ('a', 1)s   ('a', 2)s   ('b', 3)t   42t   23t   blahR&   R'   t   flat(   R   i   (   R   i   (   R   i   (   R    i   (   R   i   (   R   i   (   R    i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R>   i    (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (#   R+   t
   isinstancet   dictt   AssertionErrorR   t   assert_raisest   KeyErrort   gett   getlistR/   t
   setdefaultR   t   sortedR   R   R   R   t   TrueR   t   listsR   R   R   t   updatet   popt   poplistt   popitemt   popitemlistt   intt   reprt   addt   appendt   to_dictt   FalseR   (   R   t   mdt   mappingt   l1R   t   odt   popped(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_basic_interfaceP   sÚ    %
"++++!!11""""(%%*#%%
$3
N(   R   R   t   NoneR+   R:   Rb   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR%   =   s   	t   ImmutableDictBaseTestCasec           B€  s)   e  Z d Z d  „  Z d „  Z d „  Z RS(   c         C€  sÑ   |  j  } i d d 6d d 6d d 6} | | ƒ } |  j | d d ƒ |  j | d d ƒ |  j | d d ƒ |  j t | j ƒ  ƒ d d d g ƒ |  j d | k ƒ |  j d | k ƒ |  j t | ƒ d ƒ d  S(   Ni   R&   i   R'   i   t   bazt   foox(   R+   R   RO   R   t   assert_truet   len(   R   R6   t   dataR    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_follows_dict_interfaceú   s    	%c         C€  s›   |  j  } | i d d 6ƒ } |  j t ƒ  | j d ƒ Wd  QX| j ƒ  } | j d ƒ |  j d | k ƒ |  j | | k	 ƒ |  j t | ƒ | k ƒ d  S(   Ni   R   (   R+   RJ   t	   TypeErrorRS   R   Rg   (   R   R6   t	   immutablet   mutable(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_copies_are_mutable  s    	c         C€  s  |  j  } | i d d 6d d 6ƒ } | i d d 6d d 6ƒ } t | g ƒ } |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ d  S(   Ni   R   i   R   (   R+   t   setRg   t   discardRY   (   R   R6   Rl   t
   immutable2R<   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_dict_is_hashable  s    	N(   R   R   Rc   R+   Rj   Rn   Rr   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRd   ÷   s   		t#   ImmutableTypeConversionDictTestCasec           B€  s   e  Z e j Z RS(    (   R   R   R   t   ImmutableTypeConversionDictR+   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRs   &  s   t   ImmutableMultiDictTestCasec           B€  s   e  Z e j Z d  „  Z RS(   c         C€  s  |  j  } | i d d g d 6d d 6ƒ } | i d g d 6d d 6ƒ } t | g ƒ } |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ | j | ƒ |  j | | k ƒ |  j | | k ƒ d  S(   Ni   i   R   R   (   R+   Ro   Rg   Rp   RY   (   R   R6   Rl   Rq   R<   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_multidict_is_hashable-  s    	 (   R   R   R   t   ImmutableMultiDictR+   Rv   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRu   *  s   	t   ImmutableDictTestCasec           B€  s   e  Z e j Z RS(    (   R   R   R   t   ImmutableDictR+   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRx   ?  s   t!   ImmutableOrderedMultiDictTestCasec           B€  s   e  Z e j Z d  „  Z RS(   c         C€  sP   |  j  d d d g ƒ } |  j  d d	 d
 g ƒ } |  j t | ƒ t | ƒ ƒ d  S(   NR   i   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R+   R5   t   hash(   R   R   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt"   test_ordered_multidict_is_hashableF  s    (   R   R   R   t   ImmutableOrderedMultiDictR+   R|   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRz   C  s   	t   MultiDictTestCasec           B€  s,   e  Z e j Z d  „  Z d „  Z d „  Z RS(   c         €  sÈ   ‡  f d †  } | ƒ  } ˆ  j  | j d ƒ d ƒ | s> t ‚ | ƒ  } ˆ  j  | j d d ƒ d ƒ | sp t ‚ | ƒ  } ˆ  j  | j d d ƒ d ƒ | s¡ t ‚ ˆ  j t ƒ  | j d ƒ Wd  QXd  S(   Nc           €  s    ˆ  j  i d d d d g d 6ƒ S(   Ni   i   i   i   R&   (   R+   (    (   R   (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   <lambda>P  s    R&   i   i    t   foos(   R   RS   RI   RJ   RK   (   R   t   make_dR    (    (   R   sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_multidict_popO  s    			c         C€  sk   |  j  ƒ  } |  j | j d d d g ƒ d d g ƒ |  j | j d ƒ d d g ƒ |  j | d d ƒ d  S(   NR=   iÿÿÿÿiþÿÿÿ(   R+   R   t   setlistdefaultRM   (   R   R]   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_setlistdefault^  s    (c      	   C€  sÐ   d	 d
 d d d d d d g } |  j  | ƒ } |  j t t | j ƒ  | j ƒ  ƒ ƒ t | j ƒ  ƒ ƒ |  j t t | t | ƒ ƒ ƒ t t | ƒ ƒ ƒ |  j t t t	 | ƒ t | ƒ ƒ ƒ t t | ƒ ƒ ƒ d  S(   NR   i   R   i   R    i   i   R   (   R   i   (   R   i   (   R   i   (   R    i   (   R   i   (   R   i   (   R    i   (   R   i   (
   R+   R   R   R   R   t
   listvaluesRQ   R	   R   R   (   R   R^   R]   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_iter_interfacesd  s    $$(   R   R   R   t	   MultiDictR+   R‚   R„   R†   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR~   L  s   			t   OrderedMultiDictTestCasec           B€  s#   e  Z e j Z d  „  Z d „  Z RS(   c      	   C€  sE  |  j  } | ƒ  } | s t ‚ | j d d ƒ |  j t | ƒ d ƒ | j d d ƒ |  j t | ƒ d ƒ |  j t t | ƒ ƒ d g ƒ |  j t | ƒ d g ƒ |  j t t | d t ƒƒ d d g ƒ | d =| sß t ‚ |  j t | ƒ d ƒ |  j t | ƒ g  ƒ | j d d d g ƒ | j d d	 ƒ |  j | j	 d ƒ d d d	 g ƒ |  j | j	 d ƒ d g ƒ |  j t t | ƒ ƒ d d g ƒ d d g } |  j
 t | j ƒ  ƒ | ƒ |  j
 t | ƒ | ƒ |  j
 t t | ƒ ƒ | ƒ |  j t t | d t ƒƒ d d d d g ƒ |  j t | ƒ d ƒ |  j | j d ƒ d ƒ | j d
 d  ƒ d  k sft ‚ |  j | j d
 d ƒ d ƒ |  j t | ƒ d ƒ |  j | j d ƒ d g ƒ | sÁt ‚ | j d ƒ d  k | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ |  j | t j | ƒ ƒ |  j  | ƒ } |  j | | ƒ | j d d ƒ | | k snt ‚ | j i d d d	 g d 6ƒ |  j | d d ƒ |  j | j	 d ƒ d d d	 g ƒ |  j  ƒ  } d | d <| j d d d g ƒ |  j | j	 d ƒ d d g ƒ |  j t ƒ  | j d ƒ Wd  QX|  j t ƒ  | d Wd  QX|  j  ƒ  } | j d d ƒ | j d d ƒ | j d d ƒ |  j | j ƒ  d ƒ |  j t ƒ  | j ƒ  Wd  QX| sÌt ‚ | j d d ƒ | j d d ƒ | j d d ƒ |  j | j ƒ  d d d d g f ƒ |  j t ƒ  | j ƒ  Wd  QXd  S(   NR&   R'   i   Re   R   i    i   i*   i   t   blafaselt
   missingkeyi   RE   R?   (   s   foos   bar(   s   foos   bar(   s   foos   baz(   s   fooi   (   s   fooi   (   s   bari*   (   s   fooi   (   s   bari*   (   s   fooi   (   s   fooi   (   s   bari*   (   s   fooi   (   s   fooi   (   R+   RI   RY   R   Rh   R   R   RP   RR   RM   t   assert_sequence_equalR   R   RS   Rc   RT   RL   R   R‡   R/   RJ   R   RU   RV   (   R   R6   R    t   expectedt   id(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_ordered_interfaces  sˆ    		"""
%c         C€  s3  t  j d ƒ } t  j d ƒ } t  j | | f ƒ } |  j t | j ƒ  ƒ d d g f d d g f g ƒ |  j t | j ƒ  ƒ d g d g g ƒ |  j t | j ƒ  ƒ d d g ƒ |  j t t | ƒ ƒ d d g f d d g f g ƒ |  j t t	 | ƒ ƒ d g d g g ƒ |  j t t
 | ƒ ƒ d d g ƒ d  S(	   Nt   key_at   value_at   key_bt   value_b(   R   R   (   (   R   R   (   R‘   R’   (   (   R‘   R’   (   R   R‡   t   CombinedMultiDictR   RO   RQ   R…   R   R   R	   R   (   R   R   R   t   ab(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_iterablesÉ  s    4("4((   R   R   R   t   OrderedMultiDictR+   RŽ   R•   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRˆ   p  s   		Vt   CombinedMultiDictTestCasec           B€  s   e  Z e j Z d  „  Z RS(   c      	   C€  s  t  j d g ƒ } t  j d d g ƒ } |  j | | g ƒ } |  j | d d ƒ |  j | d d ƒ |  j | j d ƒ d d g ƒ |  j t | j ƒ  ƒ d d g ƒ |  j t | j d t ƒ ƒ d d d g ƒ d | k sâ t ‚ d | k sô t ‚ |  j | j	 d d t
 ƒd	 ƒ |  j | j d d t
 ƒd
 d g ƒ |  j t ƒ  | d Wd  QX|  j t ƒ  d | d <Wd  QX| j ƒ  } |  j t ƒ  d | d <Wd  QXt  j d ƒ } t  j d ƒ } |  j | | f ƒ } |  j t t | ƒ ƒ d d d g f g ƒ d  S(   NR&   t   1R'   RA   RB   R   RŠ   R3   i   i   i   R?   t   blubR‰   (   s   fooR˜   (   s   barRA   (   s   barRB   (   s   barRA   (   s   fooR˜   (   s   barRA   (   s   barRB   (   s   fooR˜   (   s   foos   bar(   (   s   foos   bar(   s   foos   blafasel(   (   s   foos   blafasel(   R   R‡   R+   R   RM   RO   R   RP   RI   RL   RW   RJ   RK   Rk   R   R   R   (   R   t   d1t   d2R    t   md1t   md2R<   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRb   Ú  s2    %(   R   R   R   R“   R+   Rb   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR—   ×  s   	t   HeadersTestCasec           B€  sb   e  Z e j Z d  „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z RS(	   c         C€  s3  |  j  ƒ  } | j d d ƒ | j d d ƒ d | k s> t ‚ d | k sP t ‚ d | d <|  j | d d ƒ |  j t | j d ƒ ƒ d ƒ |  j | j ƒ  d d g ƒ |  j t | ƒ d	 ƒ |  j t |  j  ƒ  ƒ d
 ƒ | j d d d d ƒ|  j | d d ƒ | j d d d d ƒ|  j | d d ƒ d  S(   Ns   Content-Types
   text/plains   X-FooR'   s   x-Foos   Content-types   foo/bari   s%   Content-Type: foo/bar
X-Foo: bar

s   
s   Content-Dispositiont
   attachmentt   filenameR&   s   attachment; filename=fooR<   R>   t   zt   "s	   y; z="\""(   s   Content-Types   foo/bar(   s   X-Foos   bar(   R+   RY   RI   R   Rh   RM   t   to_wsgi_listt   str(   R   t   headers(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRb     s&    

c         C€  s  |  j  d d d d g ƒ } |  j | j d ƒ d d g ƒ |  j | j d	 ƒ d ƒ |  j | j d ƒ d ƒ |  j | j d d
 ƒ d ƒ |  j | j d d
 ƒ d ƒ |  j | j d d ƒ d ƒ |  j | j d d
 ƒ d ƒ | j d ƒ |  j | j d d t ƒd ƒ |  j | j d d t ƒd d g ƒ |  j | d d ƒ |  j | d  |  j  d g ƒ ƒ | d 4| d =|  j | |  j  d g ƒ ƒ d  S(   Ns   Content-Types
   text/plains   X-FooR'   s   X-BarR˜   RA   s   x-bars   x-Bart   nopes   X-Bazt   quuxR3   i   i   i    iÿÿÿÿ(   s   Content-Types
   text/plain(   s   X-Foos   bar(   s   X-BarR˜   (   s   X-BarRA   (   s   Content-Types
   text/plain(   s   Content-Types
   text/plain(   s   X-BarR˜   (   R+   R   RM   RL   RN   RS   RW   (   R   R¥   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_defaults_and_conversion$  s(    % c         C€  sm   |  j  d g ƒ } | j ƒ  } | j d d ƒ |  j | j d ƒ d d g ƒ |  j | j d ƒ d g ƒ d  S(   NR&   R'   Re   (   s   foos   bar(   R+   R   RY   R   RM   (   R   R   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_copyingA  s
    c         C€  sn   |  j  d g ƒ } |  j | j d ƒ d ƒ |  j | j d d ƒ d ƒ |  j t ƒ  | j d ƒ Wd  QXd  S(   NR   i   R   i   R   (   R   i   (   R+   R   RS   RJ   RK   (   R   R¥   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_poppingH  s
    c         C€  sJ   |  j  ƒ  } | j d d ƒ | j d d d d ƒ|  j | d d ƒ d  S(   Ns   Content-Dispositiont   uselessRŸ   R    R&   s   attachment; filename=foo(   R+   Ro   R   (   R   R   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_set_argumentsP  s    c         C€  så   |  j  ƒ  } xÒ d D]Ê } |  j t ƒ  | | d <Wd  QX|  j t ƒ  | j d | ƒ Wd  QX|  j t ƒ  | j d d d | ƒWd  QX|  j t ƒ  | j d | ƒ Wd  QX|  j t ƒ  | j d d d | ƒWd  QXq Wd  S(   Ns   foo
bars   foo
bars   foobarR&   t   testt   option(   s   foo
bars   foo
bars   foobar(   R+   RJ   t
   ValueErrorRY   Ro   (   R   t   ht	   variation(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_reject_newlinesV  s    c         C€  s‘   |  j  ƒ  } | j d d ƒ | j d d ƒ | j d d ƒ g  | D]' \ } } | j d ƒ rC | | f ^ qC | (|  j t | ƒ d d	 g ƒ d  S(
   Ns	   X-Foo-Poot   blehs   Content-Types   application/whocaress   X-Forwarded-Fors   192.168.0.123u   X-(   s	   X-Foo-PooR³   (   s   X-Forwarded-Fors   192.168.0.123(   R+   Ro   t
   startswithR   R   (   R   R°   t   kt   v(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_slicinge  s    5c         C€  sn   |  j  ƒ  } | j d d ƒ | j d d ƒ |  j | j d d t ƒd ƒ |  j | j d d t ƒd ƒ d  S(   Ns	   X-Foo-PooR³   s   X-Whoopss   ÿs	   x-foo-poot   as_bytess   x-whoops(   R+   Ro   R   RL   RP   (   R   R°   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_bytes_operationsr  s
    c         C€  s†   |  j  ƒ  } | j d d ƒ xc | j ƒ  D]U \ } } t r^ |  j | d ƒ |  j | d ƒ q) |  j | d ƒ |  j | d ƒ q) Wd  S(   Nu   Keyu   Valuet   Keyt   Value(   R+   Ro   R£   R   t   assert_strict_equal(   R   R°   t   keyt   value(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_to_wsgi_listz  s    (   R   R   R   t   HeadersR+   Rb   R¨   R©   Rª   R¬   R²   R·   R¹   R¿   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRž     s   									t   EnvironHeadersTestCasec           B€  s,   e  Z e j Z d  „  Z d „  Z d „  Z RS(   c         C€  sÇ   i d d 6d d 6d d 6d d 6d d 6d d 6} |  j  | ƒ } | sK t ‚ |  j t | ƒ d ƒ |  j t | ƒ d d d g ƒ |  j  i d d 6ƒ s t ‚ |  j t |  j  i d d 6ƒ ƒ d
 ƒ d  S(   Ns	   text/htmlt   HTTP_CONTENT_TYPEt   CONTENT_TYPEt   0t   HTTP_CONTENT_LENGTHt   CONTENT_LENGTHt   *t   HTTP_ACCEPTi   i    s   wsgi.versioni   t   Accepts   Content-Lengths   Content-Type(   i   i    (   RÉ   RÇ   (   s   Content-LengthRÄ   (   s   Content-Types	   text/html(   i   i    (   i   i    (   R+   RI   R   Rh   RO   (   R   t
   broken_envR¥   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRb   Š  s     

c         C€  s¿   |  j  i d d 6d d 6ƒ } |  j | d d ƒ t | d t ƒ sJ t ‚ t | d t ƒ sc t ‚ t t | ƒ ƒ } |  j | d d ƒ t | d t ƒ s¢ t ‚ t | d t ƒ s» t ‚ d  S(   Ns   âœ“t   HTTP_FOOs
   text/plainRÃ   t   Foou   Ã¢ÂœÂ“s   Content-Type(   R+   R   RG   R
   RI   RH   R   (   R   R¥   t   iter_output(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_return_type_is_unicode   s    	c         C€  sX   d } |  j  i | d 6ƒ } |  j | j d d t ƒd ƒ |  j | j d ƒ d ƒ d  S(   Ns   ÿt
   HTTP_X_FOOs   x-fooR¸   u   Ã¿(   R+   R   RL   RP   (   R   t   foo_valR°   (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR¹   ®  s
    	(   R   R   R   t   EnvironHeadersR+   Rb   RÎ   R¹   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRÁ   ‡  s   			t   HeaderSetTestCasec           B€  s   e  Z e j Z d  „  Z RS(   c         C€  s6  |  j  ƒ  } | j d ƒ | j d ƒ d | k s8 t ‚ |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ | j d ƒ d k  s… t ‚ | j d ƒ | j d ƒ | j d ƒ d k  sº t ‚ |  j | j d ƒ d ƒ |  j t ƒ  | j d ƒ Wd  QX|  j | j d ƒ d ƒ | st ‚ | j	 ƒ  | s2t ‚ d  S(	   NR&   R'   t   Bari    t   BARi   Re   R?   (
   R+   RY   RI   R   t   findRp   RJ   t
   IndexErrort   indext   clear(   R   t   hs(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRb   »  s"    
(   R   R   R   t	   HeaderSetR+   Rb   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRÒ   ¸  s   	t   ImmutableListTestCasec           B€  s   e  Z e j Z d  „  Z RS(   c         C€  sE   d } |  j  | ƒ } |  j t | ƒ t | ƒ ƒ |  j | | ƒ d  S(   Ni   i   i   i   (   i   i   i   i   (   R+   R   R{   R5   (   R   t   tt   l(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_list_hashableÔ  s    (   R   R   R   t   ImmutableListR+   RÞ   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRÛ   Ñ  s   	c         €  s@   d g ‰  t  d ‡  ‡ f d † ƒ } ‡ ‡  f d †  } | | f S(   sÂ   Utility to assert a certain number of function calls.

    >>> assert_calls, func = make_call_asserter(self.assert_equal)
    >>> with assert_calls(2):
            func()
            func()
    i    c         3€  s'   d ˆ  d <d  Vˆ ˆ  d |  | ƒ d  S(   Ni    (    (   t   countt   msg(   t   callst   assert_equal_func(    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   asserteræ  s    
c          €  s-   ˆ d c d 7<ˆ  d  k	 r) ˆ  |  | Ž  Sd  S(   Ni    i   (   Rc   (   t   argst   kwargs(   t   funcRâ   (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   wrappedì  s    N(   R   Rc   (   Rã   Rç   Rä   Rè   (    (   Râ   Rã   Rç   sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   make_call_asserterÛ  s
    		t   CallbackDictTestCasec           B€  s#   e  Z e j Z d  „  Z d „  Z RS(   c         €  sà   t  |  j ƒ \ } } i d d 6d d 6} |  j d | d | ƒ ‰  | d d ƒ W ˆ  d ˆ  j d ƒ |  j t ‡  f d	 †  ƒ d ˆ  k t t ˆ  ƒ ƒ ˆ  j ƒ  Wd  QX| d d
 ƒ " ˆ  j	 d d  ƒ ˆ  j d ƒ Wd  QXd  S(   NR&   R   R'   R   t   initialt	   on_updatei    s&   callback triggered by read-only methodc           €  s   ˆ  d S(   NR<   (    (    (   t   dct(    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR   ÿ  s    s'   callback triggered without modificationR¡   (   Ré   R   R+   RL   RJ   RK   R   R   R   RS   Rc   RN   (   R   t   assert_callsRç   Rë   (    (   Rí   sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_callback_dict_reads÷  s    
c      
   €  s  t  |  j ƒ \ } } i d d 6d d 6} |  j d | d | ƒ ‰  | d d ƒ ^ d	 ˆ  d
 <d	 ˆ  d
 <ˆ  d
 =ˆ  j d d  ƒ ˆ  j d ƒ ˆ  j ƒ  ˆ  j g  ƒ ˆ  j ƒ  Wd  QX| d d ƒ  |  j	 t
 ‡  f d †  ƒ Wd  QX| d d ƒ  |  j	 t
 ‡  f d †  ƒ Wd  QXd  S(   NR&   R   R'   R   Rë   Rì   i   s&   callback not triggered by write methodi{   R¡   R<   i    s    callback triggered by failed delc           €  s   ˆ  j  d ƒ S(   NR<   (   t   __delitem__(    (   Rí   (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR     s    s    callback triggered by failed popc           €  s   ˆ  j  d ƒ S(   NR<   (   RS   (    (   Rí   (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR     s    (   Ré   R   R+   RS   Rc   RN   RU   RR   RØ   RJ   RK   (   R   Rî   Rç   Rë   (    (   Rí   sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   test_callback_dict_writes  s     


(   R   R   R   t   CallbackDictR+   Rï   Rñ   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyRê   ô  s   		c          C€  s  t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t	 ƒ ƒ |  j t  j t
 ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR~   Rˆ   R—   Rs   Ru   Rx   Rz   Rž   RÁ   RÒ   R   Rê   (   t   suite(    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyR÷     s    ()   t   __doc__t
   __future__R    Ró   R-   t
   contextlibR   R   R   R(   R   t   werkzeug._compatR   R   R   R   R	   R
   R   t   werkzeug.testsuiteR   t   werkzeug.exceptionsR   R   R%   Rd   Rs   Ru   Rx   Rz   R~   Rˆ   R—   Rž   RÁ   RÒ   RÛ   Rc   Ré   Rê   R÷   (    (    (    sg   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/werkzeug/testsuite/datastructures.pyt   <module>   s4   4º/	$g,„1
(