Ñò
à"Ic        '   @   s  d  d k  l Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d dU d „  ƒ  YZ e ƒ  e _ y d  d k	 l Z Wn# e
 j
 o d  d k l Z n Xd dV d „  ƒ  YZ d „  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 g d	 6f d e d
 ƒ f d e d
 ƒ f d e d ƒ f d h d g d 6f d h d g d 6f d h d g d 6f d h d g d 6f d e d
 ƒ f d  e d! ƒ f d" h d# g d 6d$ g d 6f d% h d# d& g d 6f d' h d( g d) 6d* g d+ 6d, g d- 6f d. h d( g d) 6d* g d+ 6d, g d- 6f d/ h d( g d) 6d* g d+ 6d, g d- 6f d0 h d1 g d2 6d3 g d4 6d5 g d6 6d7 g d8 6d9 g d: 6d; g d< 6d= g d> 6d? g d@ 6f dA h dB g dC 6dD g dE 6dF g dG 6d( g dH 6dI g dJ 6dK g dL 6f g Z dM „  Z dN „  Z dO „  Z dP „  Z dQ e i f dR „  ƒ  YZ dS „  Z e dT j o e ƒ  n d S(W   iÿÿÿÿ(   t   run_unittestN(   t   StringIOt   HackedSysModulec           B   s   e  Z g  Z e i Z RS(    (   t   __name__t
   __module__t   argvt   syst   stdin(    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyR   	   s   t   ComparableExceptionc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   err(   t   selfR	   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   __init__   s    c         C   s   t  |  i ƒ S(   N(   t   strR	   (   R
   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   __str__   s    c         C   sU   t  | t ƒ p d St |  i i | i ƒ } | d j o | St |  i i | i ƒ S(   Niÿÿÿÿi    (   t
   isinstancet	   Exceptiont   cmpR	   t	   __class__t   args(   R
   t   anExct   x(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   __cmp__   s    c         C   s   t  |  i | ƒ S(   N(   t   getattrR	   (   R
   t   attr(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   __getattr__%   s    (   R   R   R   R   R   R   (    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyR      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 | ƒ SXd  S(   Nt   GETt   REQUEST_METHODt   QUERY_STRINGt   POSTs!   application/x-www-form-urlencodedt   CONTENT_TYPEt   CONTENT_LENGTHs   unknown method: %st   strict_parsingi   (	   t   NoneR   R   t   lent
   ValueErrort   cgit   parset   StandardErrorR   (   t   buft   methodt   envt   fpR	   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   do_test(   s    


t    s   bad query field: ''t   &s   &&t   ;s   ;&;t   =s   =&=s   =;=s   =at   as   &=as   =a&s   =&as   bad query field: 'a's   b=at   bs   b+=as   b s   a=b=as   a=+b=as    b=as   &b=as   b&=as   bad query field: 'b's   a=a+b&b=b+cs   a bs   b cs   a=a+b&a=b+as   b as   x=1&y=2.0&z=2-3.%2b0t   1R   s   2.0t   ys   2-3.+0t   zs   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=envt   400006s1   Hbc5161168c542333633315dee1182227:key_store_seqidt   rt   cuyert	   964546263t   expires   130003.300038t   kids   en-USt   lobalet    0bb2e248638833d48cb7fed300000f1bt   order_idR(   t   sst   bustomert   viewsQ   group_id=5470&set=custom&_assigned_to=31392&_status=1&_category=100&SUBMIT=Browset   Browset   SUBMITt   31392t   _assigned_tot   100t	   _categoryt   _statust   5470t   group_idt   customt   setc         C   s+   t  |  ƒ t  g  ƒ j o |  i ƒ  n |  S(   N(   t   typet   sort(   t   list(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   normi   s    c         C   s   t  d „  |  ƒ S(   Nc         S   s   |  d  S(   i    (    (   R   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   <lambda>o   s    (   t   map(   RM   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt
   first_eltsn   s    c         C   s   t  d „  |  ƒ S(   Nc         S   s   |  d  |  d d  f S(   i    i   (    (   t   p(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyRO   r   s    (   RP   (   RM   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   first_second_eltsq   s    c         C   sŽ   t  |  ƒ } | i d ƒ t i d | d | ƒ } h  } xP t | ƒ i ƒ  D]< \ } } t | ƒ t j o | i | ƒ p | i	 | | <qJ W| S(   Ni    R)   t   environ(
   R   t   seekR#   t   FieldStoraget   dictt   itemsRK   RM   t   getlistt   value(   t   dataRT   t
   fake_stdint   formt   resultt   kt   v(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt
   gen_resultt   s     4t   CgiTestsc           B   sŠ   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z h d d 6d d g d	 6d
 d 6d d 6Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   c      
   C   s¥  xžt  D]–\ } } t | d ƒ } |  i | | d t | ƒ ƒ t | d ƒ } |  i | | d t | ƒ ƒ h | d 6} t i | ƒ } t i | ƒ } t i d | ƒ } t | ƒ t h  ƒ j oÜ|  i t	 | ƒ t	 | ƒ ƒ |  i t
 | i ƒ  ƒ t
 | i ƒ  ƒ ƒ |  i t
 | i ƒ  ƒ t
 | i ƒ  ƒ ƒ |  i t
 | i ƒ  ƒ t
 | i ƒ  ƒ ƒ |  i | i d d ƒ d ƒ |  i t	 | ƒ t	 | ƒ ƒ |  i t
 | i ƒ  ƒ t
 | i ƒ  ƒ ƒ |  i | i d d ƒ d ƒ xÉ| i ƒ  D]·} | | }	 |  i | i | ƒ ƒ |  i t
 | | ƒ t
 | | ƒ ƒ |  i | i | d ƒ | | ƒ |  i | i | ƒ ƒ t	 |	 ƒ d j o
 d	 }
 n d }
 y | | } Wn9 t j
 o- |  i |
 ƒ |  i | i | ƒ |	 ƒ n@ X|  i |
 ƒ |  i | |	 d	 ƒ |  i | i | ƒ |	 d	 ƒ |  i t
 | i | ƒ ƒ t
 |	 ƒ ƒ |
 o` |  i t
 | i ƒ  ƒ t t
 | i ƒ  ƒ ƒ ƒ |  i t
 | i ƒ  ƒ t t
 | i ƒ  ƒ ƒ ƒ qÞqÞWq q Wd  S(
   NR   s   Error parsing %sR   R   RT   s   nonexistent fieldt   defaulti   i    (   t   parse_strict_test_casesR*   t   assertEqualt   reprR#   t   FormContentDictt   SvFormContentDictRV   RK   R!   RN   t   keyst   valuesRX   t   gett   getvaluet   assert_t   has_keyt
   IndexErrort   failIfRY   RQ   RS   (   R
   t   origt   expectt   dR(   t   fcdt   sdt   fst   keyt
   expect_valt   single_valuet   val(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_strict   sV     (((( 
$ 
%c         C   sÌ   h d d 6} h d d 6d d 6d d 6d	 d
 6} t  i | ƒ } x. | i ƒ  D]  \ } } |  i | | | ƒ qK Wx. | i ƒ  D]  \ } } |  i | | | ƒ q| W|  i t | i ƒ  ƒ t | i ƒ  ƒ ƒ d  S(   Ns   x=1&y=2.0&z=2-3.%2b0&1=1abcR   i   R   g       @R2   s   2-3.+0R3   t   1abcR1   (   R#   t   InterpFormContentDictRX   Re   RN   Rj   (   R
   R(   Rr   Rs   R_   R`   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_weird_formcontentdict²   s    "  c         C   sœ   t  i d ƒ t ƒ  t  _ t  i d d ƒ t  i d d ƒ |  i t  i i ƒ  d ƒ t i i	 d ƒ o3 d  t  _ d t  _ t  i d d ƒ t  i d ƒ n d  S(	   Nt   Testings   %ss   Testing initlog 1s   Testing log 2s    Testing initlog 1
Testing log 2
s	   /dev/nulls   Testing log 3s   Testing log 4(   R#   t   logR   t   logfpt   initlogRe   Rl   t   ost   patht   existsR    t   logfile(   R
   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_log½   s    		c         C   s†   d d d „  ƒ  Y} | t  i ƒ  ƒ } | i d d d ƒ | i d ƒ h d d 6} t i d	 | d
 | ƒ } |  i | i d j ƒ d  S(   Nt   TestReadlineFilec           B   s&   e  Z d  „  Z d d „ Z d „  Z RS(   c         S   s   | |  _  d |  _ d  S(   Ni    (   t   filet   numcalls(   R
   R‰   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyR   Ð   s    	c         S   s8   |  i  d 7_  | o |  i i | ƒ S|  i i ƒ  Sd  S(   Ni   (   RŠ   R‰   t   readline(   R
   t   size(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyR‹   Ô   s    c         S   sD   |  i  d } t | | ƒ } t | t ƒ p t |  | | ƒ n | S(   NR‰   (   t   __dict__R   R   t   intt   setattr(   R
   t   nameR‰   R/   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyR   Û   s
    N(   R   R   R   R    R‹   R   (    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyRˆ   Ï   s   	R   i   i   i    t   PUTR   R)   RT   i   (    (   t   tempfilet   TemporaryFilet   writeRU   R#   RV   Rm   RŠ   (   R
   Rˆ   t   fR(   Rv   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_fieldstorage_readlineÊ   s    c   	      C   s)  h d d 6d d 6d d 6} d } t  i d t | ƒ d	 | ƒ } |  i t | i ƒ d
 ƒ h d d 6d  d 6d d 6h d d 6d  d 6d d 6h d d 6d d 6d d 6h d d 6d  d 6d d 6g } xd t t | i ƒ ƒ D]M } xD | | i ƒ  D]2 \ } } t	 | i | | ƒ } |  i | | ƒ që WqÔ Wd  S(   NR   R   sT   multipart/form-data; boundary=---------------------------721837373350705526688164684R   t   558R   s  -----------------------------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--
R)   RT   i   t   idR   t   filenamet   1234RZ   t   titleR+   R‰   s   test.txts   Testing 123.
t   submits    Add (
   R#   RV   R   t   assertEqualsR!   RM   R    t   rangeRX   R   (	   R
   R(   t   postdataRv   Rr   R   R_   t   expt   got(    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_fieldstorage_multipartì   s      t   value1t   key1t   value2xt   value2yt   key2t   value3t   key3t   value4t   key4c         C   sZ   d } h t  t | ƒ ƒ d 6d d 6d d 6d d 6} t | | ƒ } |  i |  i | ƒ d  S(	   Ns$   key2=value2x&key3=value3&key4=value4R   s!   application/x-www-form-urlencodedR   s   key1=value1&key2=value2yR   R   R   (   R   R!   Ra   Re   t
   _qs_result(   R
   R[   RT   R`   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   testQSAndUrlEncode  s    
c         C   sZ   d } h t  t | ƒ ƒ d 6d d 6d d 6d d 6} t | | ƒ } |  i |  i | ƒ d  S(	   Ns¼   
---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123--
R   s"   multipart/form-data; boundary=-123R   s   key1=value1&key2=value2xR   R   R   (   R   R!   Ra   Re   R¬   (   R
   R[   RT   R`   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   testQSAndFormData  s    
c         C   sz   d } h t  t | ƒ ƒ d 6d d 6d d 6d d 6} |  i i ƒ  } | i h d	 d
 6ƒ t | | ƒ } |  i | | ƒ d  S(   NsF  
---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123
Content-Disposition: form-data; name="upload"; filename="fake.txt"
Content-Type: text/plain

this is the content of the fake file

---123--
R   s"   multipart/form-data; boundary=-123R   s   key1=value1&key2=value2xR   R   R   s%   this is the content of the fake file
t   upload(   R   R!   R¬   t   copyt   updateRa   Re   (   R
   R[   RT   R^   R`   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   testQSAndFormDataFile8  s    
	c         C   s;   |  i  h d g d 6d g d 6d g d 6t i d ƒ ƒ d  S(   Nt   A1R/   t   B3t   Bt   B2R0   s   a=A1&b=B2&B=B3(   Re   R#   t   parse_qs(   R
   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_deprecated_parse_qs[  s    'c         C   s&   |  i  d d	 d
 g t i d ƒ ƒ d  S(   NR/   R³   R0   R¶   Rµ   R´   s   a=A1&b=B2&B=B3(   R/   s   A1(   R0   s   B2(   Rµ   s   B3(   Re   R#   t	   parse_qsl(   R
   (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   test_deprecated_parse_qsl`  s    (   R   R   R{   R~   R‡   R–   R¢   R¬   R­   R®   R²   R¸   Rº   (    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyRb      s   	1			"	"
			#	c           C   s   t  t ƒ d  S(   N(   R    Rb   (    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt	   test_mainf  s    t   __main__(    (    (   t   test.test_supportR    R#   Rƒ   R   R’   t   unittestR   R   t	   cStringIOt   ImportErrorR   R*   R"   Rd   RN   RQ   RS   Ra   t   TestCaseRb   R»   R   (    (    (    s*   /mit/python/lib/python2.6/test/test_cgi.pyt   <module>   sz   				'''









				ç	