mò
­fIc           @   s?  d  k  l Z l Z d k Z d k Z d k Z d k Z d k l Z d f  d „  ƒ  YZ e ƒ  e _ y d k	 l Z Wn  e
 j
 o d k l Z n Xd f  d „  ƒ  YZ d „  Z d g  f d	 g  f d
 g  f d d d f g f d d d f g f d d d f g f d d d f g f d d d f g f d d d f g f d d d f d d f g f d d d f d d f g f g Z d e d ƒ f d	 e d ƒ f d
 e d ƒ f d e d ƒ f d e d ƒ f d h  f d h  f d h  f d h  d d g <f d e d ƒ f d e d ƒ f d e d ƒ f d  h  d d g <f d! h  d" d g <f d# h  d d  g <f d$ h  d d% g <f d& e d ƒ f d' e d( ƒ f d h  d d g <d d g <f d) h  d d d* g <f d+ h  d, d g <d- d. g <d/ d0 g <f d1 h  d, d g <d- d. g <d/ d0 g <f d2 h  d, d g <d- d. g <d/ d0 g <f d3 h  d4 d5 g <d6 d7 g <d8 d9 g <d: d; g <d< d= g <d> d? g <d@ dA g <dB dC g <f dD h  dE dF g <dG dH g <dI dJ g <dK d g <dL dM g <dN dO g <f g Z dP „  Z dQ „  Z dR „  Z dS „  Z e ƒ  d S(T   (   s   verifys   verboseN(   s   StringIOt   HackedSysModulec           B   s   t  Z g  Z e i Z RS(   N(   t   __name__t
   __module__t   argvt   syst   stdin(    (    (    t*   /mit/python/lib/python2.4/test/test_cgi.pyR       s   t   ComparableExceptionc           B   s,   t  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s   | |  _  d  S(   N(   t   errt   self(   R	   R   (    (    R   t   __init__   s    c         C   s   t  |  i ƒ S(   N(   t   strR	   R   (   R	   (    (    R   t   __str__   s    c         C   s[   t  | t ƒ p d Sn t |  i i | i ƒ } | d j o | Sn t |  i i | i ƒ S(   Niÿÿÿÿi    (	   t
   isinstancet   anExct	   Exceptiont   cmpR	   R   t	   __class__t   xt   args(   R	   R   R   (    (    R   t   __cmp__   s    c         C   s   t  |  i | ƒ S(   N(   t   getattrR	   R   t   attr(   R	   R   (    (    R   t   __getattr__$   s    (   R   R   R
   R   R   R   (    (    (    R   R      s   			c         C   sÅ   h  } | d j o d  } d | d <|  | d <nU | d j o: t |  ƒ } d | d <d | d <t t |  ƒ ƒ | d <n t d | ‚ y t	 i
 | | d	 d
 ƒSWn t j
 o } t | ƒ Sn Xd  S(   Nt   GETt   REQUEST_METHODt   QUERY_STRINGt   POSTs!   application/x-www-form-urlencodedt   CONTENT_TYPEt   CONTENT_LENGTHs   unknown method: %st   strict_parsingi   (   t   envt   methodt   Nonet   fpt   buft   StringIOR   t   lent
   ValueErrort   cgit   parset   StandardErrorR   R   (   R#   R    R"   R   R   (    (    R   t   do_test'   s    


t    t   &s   &&t   =s   =at   as   a=s   &a=bt   bs   a=a+b&b=b+cs   a bs   b cs   a=1&a=2t   1t   2s   bad query field: ''t   ;s   ;&;s   =&=s   =;=s   &=as   =a&s   =&as   bad query field: 'a's   b=as   b+=as   b s   a=b=as   a=+b=as    b=as   &b=as   b&=as   bad query field: 'b's   a=a+b&a=b+as   b as   x=1&y=2.0&z=2-3.%2b0R   t   ys   2.0t   zs   2-3.+0s   x=1;y=2.0&z=2-3.%2b0s   x=1;y=2.0;z=2-3.%2b0s¯   Hbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=envs1   Hbc5161168c542333633315dee1182227:key_store_seqidt   400006t   cuyert   rt   expiret	   964546263t   kids   130003.300038t   lobales   en-USt   order_idt    0bb2e248638833d48cb7fed300000f1bt   ssR   t   viewt   bustomersQ   group_id=5470&set=custom&_assigned_to=31392&_status=1&_category=100&SUBMIT=Browset   SUBMITt   Browset   _assigned_tot   31392t	   _categoryt   100t   _statust   group_idt   5470t   sett   customc         C   s+   t  |  ƒ t  g  ƒ j o |  i ƒ  n |  S(   N(   t   typet   listt   sort(   RM   (    (    R   t   normy   s    c         C   s   t  d „  |  ƒ S(   Nc         C   s   |  d S(   Ni    (   R   (   R   (    (    R   t   <lambda>   s    (   t   mapRM   (   RM   (    (    R   t
   first_elts~   s    c         C   s   t  d „  |  ƒ S(   Nc         C   s   |  d |  d d f S(   Ni    i   (   t   p(   RS   (    (    R   RP   ‚   s    (   RQ   RM   (   RM   (    (    R   t   first_second_elts   s    c          C   s'  xY t  D]Q \ } } t i | d t ƒ} t | ƒ Gd G| GHt | | j d t | ƒ ƒ q Wx t	 D]˜\ } } t | ƒ GHt
 | d ƒ } t | | j d t | ƒ ƒ t
 | d ƒ } t | | j d t | ƒ ƒ h  d | <} t i | ƒ }
 t i | ƒ } t i d | ƒ }	 t | ƒ t h  ƒ j oÑt t | ƒ t |
 ƒ j ƒ t t | i ƒ  ƒ t |
 i ƒ  ƒ j ƒ t t | i ƒ  ƒ t |
 i ƒ  ƒ j ƒ t t | i ƒ  ƒ t |
 i ƒ  ƒ j ƒ t |
 i d d	 ƒ d	 j ƒ t t | ƒ t |	 ƒ j ƒ t t | i ƒ  ƒ t |	 i ƒ  ƒ j ƒ t |	 i d d	 ƒ d	 j ƒ x¾| i ƒ  D]¬} | | } t |
 i | ƒ ƒ t t |
 | ƒ t | | ƒ j ƒ t |
 i | d	 ƒ |
 | j ƒ t |	 i | ƒ ƒ t | ƒ d
 j o
 d } n d
 } y | | } Wn7 t  j
 o+ t | ƒ t |	 i | ƒ | j ƒ n= Xt | ƒ t | | d j ƒ t |	 i | ƒ | d j ƒ t t | i! | ƒ ƒ t | ƒ j ƒ | o` t t | i ƒ  ƒ t" t | i ƒ  ƒ ƒ j ƒ t t | i ƒ  ƒ t# t | i ƒ  ƒ ƒ j ƒ qGqGWqc qc Wh  d d <} h  d d
 <d d <d d <d d <} t i$ | ƒ } x. | i ƒ  D]  \ } } t | | | j ƒ qTWx. | i ƒ  D]  \ } } t | | | j ƒ q…Wt t | i ƒ  ƒ t | i ƒ  ƒ j ƒ d GHt i' d ƒ t( i) t _* t i+ d d ƒ t i' d d ƒ t, i- i. d ƒ o3 d  t _* d t _0 t i+ d d ƒ t i' d ƒ n d GHd f  d „  ƒ  Y} | t2 i3 ƒ  ƒ } | i5 d d d  ƒ | i6 d ƒ h  d! d" <} t i d# | d | ƒ }	 t | i7 d$ j ƒ d% GHh  d! d <d& d' <d( d) <} d* }  t i d# t9 |  ƒ d | ƒ }	 t t |	 i: ƒ d+ j ƒ h  d, d- <d. d  <d/ d0 <h  d, d1 <d. d  <d/ d2 <h  d, d3 <d. d4 <d/ d5 <h  d, d6 <d. d  <d/ d7 <g } xd t; t |	 i: ƒ ƒ D]M } xD | | i ƒ  D]2 \ } } t> |	 i: | | ƒ } t | | j ƒ qéWqÒWd  S(8   Nt   keep_blank_valuess   =>s   Error parsing %sR   R   R   t   environs   nonexistent fieldt   defaulti   i    s   x=1&y=2.0&z=2-3.%2b0&1=1abcR   R3   f2.0R4   s   2-3.+0R0   t   1abcs   Testing logt   Testings   %ss   Testing initlog 1s   Testing log 2s	   /dev/nulls   Testing log 3s   Testing log 4s+   Test FieldStorage methods that use readlinet   TestReadlineFilec           B   s&   t  Z d „  Z d  d „ Z d „  Z RS(   Nc         C   s   | |  _  d |  _ d  S(   Ni    (   t   fileR	   t   numcalls(   R	   R[   (    (    R   R
   Ö   s    	c         C   s;   |  i d 7_ | o |  i i | ƒ Sn |  i i ƒ  Sd  S(   Ni   (   R	   R\   t   sizeR[   t   readline(   R	   R]   (    (    R   R^   Ú   s    c         C   sD   |  i d } t | | ƒ } t | t ƒ p t |  | | ƒ n | S(   NR[   (	   R	   t   __dict__R[   R   t   nameR.   R   t   intt   setattr(   R	   R`   R.   R[   (    (    R   R   á   s
    (   R   R   R
   R!   R^   R   (    (    (    R   RZ   Õ   s   	i   i   R   t   PUTR"   i   s)   Test basic FieldStorage multipart parsingR   sT   multipart/form-data; boundary=---------------------------721837373350705526688164684R   t   558s  -----------------------------721837373350705526688164684
Content-Disposition: form-data; name="id"

1234
-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="title"


-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

Testing 123.

-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="submit"

 Add 
-----------------------------721837373350705526688164684--
i   R`   t   idt   filenamet   valuet   1234t   titleR+   R[   s   test.txts   Testing 123.
t   submits    Add (@   t   parse_qsl_test_casest   origt   expectR'   t	   parse_qslt   Truet   resultt   reprt   verifyt   parse_strict_test_casesR*   t   dR   t   FormContentDictt   fcdt   SvFormContentDictt   sdt   FieldStoraget   fsRL   R%   RO   t   keyst   valuest   itemst   gett   getvaluet   keyt
   expect_valt   has_keyt   single_valuet   valt
   IndexErrort   getlistRR   RT   t   InterpFormContentDictt   kt   vt   logR   t   stdoutt   logfpt   initlogt   ost   patht   existsR!   t   logfileRZ   t   tempfilet   TemporaryFilet   ft   writet   seekR\   t   postdataR$   RM   t   rangeR   t   expR   t   got(   R—   Rm   Rp   Rƒ   Rl   R„   RZ   R   Rš   Rz   Rv   R€   R   R   Rt   R”   Rˆ   R™   R‰   Rx   (    (    R   t   main„   s®     ! (((( 
$ 

%.>*  (		!~  (   t   test.test_supportRr   t   verboseR'   RŽ   R   R’   R$   R    t	   cStringIOt   ImportErrorR   R*   Rk   R&   Rs   RO   RR   RT   R›   (   R'   R   RR   R*   R    R   R$   R’   Rr   R   Rs   RT   Rk   R›   RŽ   RO   (    (    R   t   ?   s,   					Ãÿ ÿ œ/				