;
Λβ"Ic            +   @   s  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 m Z Gd   d  Z e   e _ y d  d l m Z Wn$ e k
 o d  d l m Z Yn XGd   d  Z d	   Z d
 e d  f d e d  f d e d  f d e d  f d e d  f d i  f d i  f d i  f d i d g d
 6f d e d  f d e d  f d e d  f d i d g d 6f d i d g d 6f d i d g d 6f d i d g d 6f d  e d  f d! e d"  f d# i d$ g d 6d% g d 6f d& i d$ d' g d 6f d( i d) g d* 6d+ g d, 6d- g d. 6f d/ i d) g d* 6d+ g d, 6d- g d. 6f d0 i d) g d* 6d+ g d, 6d- g d. 6f d1 i d2 g d3 6d4 g d5 6d6 g d7 6d8 g d9 6d: g d; 6d< g d= 6d> g d? 6d@ g dA 6f dB i dC g dD 6dE g dF 6dG g dH 6d) g dI 6dJ g dK 6dL g dM 6f g Z dN   Z dO   Z dP   Z dQ   Z GdR   dS e j  Z dT   Z e dU k o e   n d S(V   i    (   u   run_unittestN(   u   StringIO(   u   catch_warningsu   filterwarningsc             B   s   |  Ee  Z g  Z e j Z d  S(   N(   u   __name__u
   __module__u   argvu   sysu   stdin(   u
   __locals__(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   HackedSysModule
   s   
u   HackedSysModulec             B   s2   |  Ee  Z d    Z d   Z d   Z d   Z d S(   c             C   s   | |  _  d  S(   N(   u   err(   u   selfu   err(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __init__   s    c             C   s   t  |  j  S(   N(   u   stru   err(   u   self(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __str__   s    c             C   s>   t  | t  p t S|  j j | j k o |  j j | j k S(   N(   u
   isinstanceu	   Exceptionu   NotImplementedu   erru	   __class__u   args(   u   selfu   anExc(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __eq__   s    c             C   s   t  |  j |  S(   N(   u   getattru   err(   u   selfu   attr(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __getattr__$   s    N(   u   __name__u
   __module__u   __init__u   __str__u   __eq__u   __getattr__(   u
   __locals__(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   ComparableException   s   
			u   ComparableExceptionc             C   sΪ   i  } | d k o d  } d | d <|  | d <nX | d k o: t |   } d | d <d | d <t t |    | d <n t d |   y t j | | d	 d
 SWn1 t k
 o% } z t |  SWYd  d  } ~ Xn Xd  S(   Nu   GETu   REQUEST_METHODu   QUERY_STRINGu   POSTu!   application/x-www-form-urlencodedu   CONTENT_TYPEu   CONTENT_LENGTHu   unknown method: %su   strict_parsingi   (	   u   Noneu   StringIOu   stru   lenu
   ValueErroru   cgiu   parseu	   Exceptionu   ComparableException(   u   bufu   methodu   envu   fpu   err(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   do_test'   s    


u    u   bad query field: ''u   &u   &&u   ;u   ;&;u   =u   =&=u   =;=u   =au   au   &=au   =a&u   =&au   bad query field: 'a'u   b=au   bu   b+=au   b u   a=b=au   a=+b=au    b=au   &b=au   b&=au   bad query field: 'b'u   a=a+b&b=b+cu   a bu   b cu   a=a+b&a=b+au   b au   x=1&y=2.0&z=2-3.%2b0u   1u   xu   2.0u   yu   2-3.+0u   zu   x=1;y=2.0&z=2-3.%2b0u   x=1;y=2.0;z=2-3.%2b0u―   Hbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=envu   400006u1   Hbc5161168c542333633315dee1182227:key_store_seqidu   ru   cuyeru	   964546263u   expireu   130003.300038u   kidu   en-USu   lobaleu    0bb2e248638833d48cb7fed300000f1bu   order_idu   envu   ssu   bustomeru   viewuQ   group_id=5470&set=custom&_assigned_to=31392&_status=1&_category=100&SUBMIT=Browseu   Browseu   SUBMITu   31392u   _assigned_tou   100u	   _categoryu   _statusu   5470u   group_idu   customu   setc             C   s   t  |  d t S(   Nu   key(   u   sortedu   repr(   u   seq(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   normh   s    c             C   s   d   |  D S(   Nc             S   s   g  } |  ] } | | d  q
 S(   i    (    (   u   .0u   _[1]u   p(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu
   <listcomp>l   s    (    (   u   list(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu
   first_eltsk   s    c             C   s   d   |  D S(   Nc             S   s-   g  } |  ] } | | d  | d d  f q
 S(   i    i   (    (   u   .0u   _[1]u   p(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu
   <listcomp>o   s    (    (   u   list(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   first_second_eltsn   s    c             C   s   t  |   } | j d  t j d | d |  } i  } xP t |  j   D]< \ } } t |  t k o | j |  p | j	 | | <qJ W| S(   Ni    u   fpu   environ(
   u   StringIOu   seeku   cgiu   FieldStorageu   dictu   itemsu   typeu   listu   getlistu   value(   u   datau   environu
   fake_stdinu   formu   resultu   ku   v(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu
   gen_resultq   s     4c             B   s   |  Ee  Z d    Z d   Z d   Z d   Z i d d 6d d g d 6d	 d
 6d d 6Z d   Z d   Z d   Z	 d   Z
 d   Z d S(   c             C   s  xt  D]\ } } t | d  } |  j | | d t |   t | d  } |  j | | d t |   i | d 6} t j d |  } t |  t i   k oε |  j t |  t |   |  j t | j	    t | j	     |  j | j
 d d  d  x | j	   D]p } | | } |  j | | k  t |  d k o |  j | j
 |  |  q|  j | j
 |  | d	  qWq q Wd  S(
   Nu   GETu   Error parsing %su   POSTu   QUERY_STRINGu   environu   nonexistent fieldu   defaulti   i    (   u   parse_strict_test_casesu   do_testu   assertEqualu   repru   cgiu   FieldStorageu   typeu   lenu   normu   keysu   getvalueu   assert_(   u   selfu   origu   expectu   du   envu   fsu   keyu
   expect_val(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_strict~   s&     ( 
c             C   s   t  j d  t   t  _ t  j d d  t  j d d  |  j t  j j   d  t j j	 d  o3 d  t  _ d t  _ t  j d d  t  j d  n d  S(	   Nu   Testingu   %su   Testing initlog 1u   Testing log 2u    Testing initlog 1
Testing log 2
u	   /dev/nullu   Testing log 3u   Testing log 4(   u   cgiu   logu   StringIOu   logfpu   initlogu   assertEqualu   getvalueu   osu   pathu   existsu   Noneu   logfile(   u   self(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_log   s    		c             C   s   Gd   d  } | t  j d   } | j d d d  | j d  i d d	 6} t j d
 | d |  } |  j | j d k  d  S(   Nc             B   s,   |  Ee  Z d    Z d d  Z d   Z d S(   c             S   s   | |  _  d |  _ d  S(   Ni    (   u   fileu   numcalls(   u   selfu   file(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __init__«   s    	c             S   s8   |  j  d 7_  | o |  j j |  S|  j j   Sd  S(   Ni   (   u   numcallsu   fileu   readline(   u   selfu   size(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   readline―   s    c             S   sD   |  j  d } t | |  } t | t  p t |  | |  n | S(   Nu   file(   u   __dict__u   getattru
   isinstanceu   intu   setattr(   u   selfu   nameu   fileu   a(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   __getattr__Ά   s
    N(   u   __name__u
   __module__u   __init__u   Noneu   readlineu   __getattr__(   u
   __locals__(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   TestReadlineFileͺ   s   
	u   TestReadlineFileu   w+u   xi   i   i    u   PUTu   REQUEST_METHODu   fpu   environi   (   u   tempfileu   TemporaryFileu   writeu   seeku   cgiu   FieldStorageu   assert_u   numcalls(   u   selfu   TestReadlineFileu   fu   envu   fs(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_fieldstorage_readline₯   s    c       	      C   s)  i d d 6d d 6d d 6} d } t  j d t |  d	 |  } |  j t | j  d
  i d d 6d  d 6d d 6i d d 6d  d 6d d 6i d d 6d d 6d d 6i d d 6d  d 6d d 6g } xd t t | j   D]M } xD | | j   D]2 \ } } t	 | j | |  } |  j | |  qλ WqΤ Wd  S(   Nu   POSTu   REQUEST_METHODuT   multipart/form-data; boundary=---------------------------721837373350705526688164684u   CONTENT_TYPEu   558u   CONTENT_LENGTHu  -----------------------------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--
u   fpu   environi   u   idu   nameu   filenameu   1234u   valueu   titleu    u   fileu   test.txtu   Testing 123.u   submitu    Add (
   u   cgiu   FieldStorageu   StringIOu   assertEqualsu   lenu   listu   Noneu   rangeu   itemsu   getattr(	   u   selfu   envu   postdatau   fsu   expectu   xu   ku   expu   got(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_fieldstorage_multipartΗ   s      u   value1u   key1u   value2xu   value2yu   key2u   value3u   key3u   value4u   key4c             C   sZ   d } i t  t |   d 6d d 6d d 6d d 6} t | |  } |  j |  j |  d  S(	   Nu$   key2=value2x&key3=value3&key4=value4u   CONTENT_LENGTHu!   application/x-www-form-urlencodedu   CONTENT_TYPEu   key1=value1&key2=value2yu   QUERY_STRINGu   POSTu   REQUEST_METHOD(   u   stru   lenu
   gen_resultu   assertEqualu
   _qs_result(   u   selfu   datau   environu   v(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   testQSAndUrlEncodeο   s    
c             C   sZ   d } i t  t |   d 6d d 6d d 6d d 6} t | |  } |  j |  j |  d  S(	   NuΌ   
---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--
u   CONTENT_LENGTHu"   multipart/form-data; boundary=-123u   CONTENT_TYPEu   key1=value1&key2=value2xu   QUERY_STRINGu   POSTu   REQUEST_METHOD(   u   stru   lenu
   gen_resultu   assertEqualu
   _qs_result(   u   selfu   datau   environu   v(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   testQSAndFormDataϊ   s    
c             C   sz   d } i t  t |   d 6d d 6d d 6d d 6} |  j j   } | j i d	 d
 6 t | |  } |  j | |  d  S(   NuF  
---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--
u   CONTENT_LENGTHu"   multipart/form-data; boundary=-123u   CONTENT_TYPEu   key1=value1&key2=value2xu   QUERY_STRINGu   POSTu   REQUEST_METHODu$   this is the content of the fake fileu   upload(   u   stru   lenu
   _qs_resultu   copyu   updateu
   gen_resultu   assertEqual(   u   selfu   datau   environu   resultu   v(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   testQSAndFormDataFile  s    
	c          
   C   sn   t    j } j   zK t d d t  |  j i d g d 6d g d 6d g d 6t j d	   Wd  | ~ QXd  S(
   Nu   ignoreu=   cgi.parse_qs is deprecated, use urllib.parse.parse_qs insteadu   A1u   au   B3u   Bu   B2u   bu   a=A1&b=B2&B=B3(   u   catch_warningsu   __exit__u	   __enter__u   filterwarningsu   DeprecationWarningu   assertEqualu   cgiu   parse_qs(   u   selfu   _[1](    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_deprecated_parse_qs6  s    'c             C   sY   t    j } j   z6 t d d t  |  j d
 d d g t j d	   Wd  | ~ QXd  S(   Nu   ignoreu?   cgi.parse_qsl is deprecated, use urllib.parse.parse_qsl insteadu   au   A1u   bu   B2u   Bu   B3u   a=A1&b=B2&B=B3(   u   au   A1(   u   bu   B2(   u   Bu   B3(   u   catch_warningsu   __exit__u	   __enter__u   filterwarningsu   DeprecationWarningu   assertEqualu   cgiu	   parse_qsl(   u   selfu   _[1](    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   test_deprecated_parse_qsl?  s    N(   u   __name__u
   __module__u   test_strictu   test_logu   test_fieldstorage_readlineu   test_fieldstorage_multipartu
   _qs_resultu   testQSAndUrlEncodeu   testQSAndFormDatau   testQSAndFormDataFileu   test_deprecated_parse_qsu   test_deprecated_parse_qsl(   u
   __locals__(    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   CgiTests|   s   
			"	"
			#		u   CgiTestsc               C   s   t  t  d  S(   N(   u   run_unittestu   CgiTests(    (    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu	   test_mainH  s    u   __main__(   u   test.supportu   run_unittestu   cgiu   osu   sysu   tempfileu   unittestu   iou   StringIOu   warningsu   catch_warningsu   filterwarningsu   HackedSysModuleu   ImportErroru   ComparableExceptionu   do_testu
   ValueErroru   parse_strict_test_casesu   normu
   first_eltsu   first_second_eltsu
   gen_resultu   TestCaseu   CgiTestsu	   test_mainu   __name__(    (    (    u*   /mit/python/lib/python3.0/test/test_cgi.pyu   <module>   s|   				'''









				Μ	