;
Íâ"Ic               @   si  d  Z  d d l 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 Z d d l Z d „  Z d a d d d „ Z Gd „  d e	 j ƒ Z Gd „  d	 e	 j ƒ Z Gd
 „  d e	 j ƒ Z Gd „  d e	 j ƒ Z Gd „  d e	 j ƒ Z Gd „  d e	 j ƒ Z Gd „  d e	 j ƒ Z Gd „  d e	 j ƒ Z d „  Z e d k o e ƒ  n d S(   u   Regresssion tests for urllibi    N(   u   supportc             C   sK   t  t |  ƒ ƒ d d … j ƒ  } t | ƒ d k o d | } n d | S(   u!   Escape char as RFC 2396 specifiesi   Ni   u   0%su   %(   u   hexu   ordu   upperu   len(   u   charu   hex_repr(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   hexescape   s    "c             C   s{   | d k	 o t j j d | ƒ } n' t p t j j ƒ  } | a n t } | d k o | j |  ƒ S| j |  | ƒ Sd S(   u.   urlopen(url [, data]) -> open file-like objectu   proxiesN(   u   Noneu   urllibu   requestu   FancyURLopeneru
   _urlopeneru   open(   u   urlu   datau   proxiesu   opener(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   urlopen   s    
c             B   s€   |  Ee  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 S(   u©   Test urlopen() opening a temporary file.

    Try to test as much functionality as possible so as to cut down on reliance
    on connecting to the Net for testing.

    c          	   C   sv   t  d |  j j d ƒ |  _ t t j d ƒ } z | j |  j ƒ Wd  | j ƒ  Xt j |  _	 t
 d |  j	 ƒ |  _ d  S(   Nu   test_urllib: %s
u   asciiu   wbu   file:%s(   u   bytesu	   __class__u   __name__u   textu   openu   supportu   TESTFNu   writeu   closeu   pathnameu   urlopenu   returned_obj(   u   selfu   f(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   setUp-   s    c             C   s!   |  j  j ƒ  t j t j ƒ d S(   u   Shut down the open objectN(   u   returned_obju   closeu   osu   removeu   supportu   TESTFN(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   tearDown9   s    c          	   C   s5   x. d D]& } |  j  t |  j | ƒ d
 | ƒ q Wd  S(   Nu   readu   readlineu	   readlinesu   filenou   closeu   infou   geturlu   getcodeu   __iter__u/   object returned by urlopen() lacks %s attribute(	   u   readu   readlineu	   readlinesu   filenou   closeu   infou   geturlu   getcodeu   __iter__(   u   assert_u   hasattru   returned_obj(   u   selfu   attr(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_interface>   s     c             C   s    |  j  |  j |  j j ƒ  ƒ d  S(   N(   u   assertEqualu   textu   returned_obju   read(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_readF   s    c             C   s<   |  j  |  j |  j j ƒ  ƒ |  j  d |  j j ƒ  d ƒ d  S(   Ns    uK   calling readline() after exhausting the file did not return an empty string(   u   assertEqualu   textu   returned_obju   readline(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_readlineI   s    c             C   sF   |  j  j ƒ  } |  j t | ƒ d d ƒ |  j | d |  j d ƒ d  S(   Ni   u.   readlines() returned the wrong number of linesi    u"   readlines() returned improper text(   u   returned_obju	   readlinesu   assertEqualu   lenu   text(   u   selfu
   lines_list(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_readlinesO   s
    c             C   sW   |  j  j ƒ  } |  j t | t ƒ d ƒ |  j t j | t |  j	 ƒ ƒ |  j	 d ƒ d  S(   Nu   fileno() did not return an intuT   Reading on the file descriptor returned by fileno() did not return the expected text(
   u   returned_obju   filenou   assert_u
   isinstanceu   intu   assertEqualu   osu   readu   lenu   text(   u   selfu   file_num(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_filenoV   s
    $c             C   s   |  j  j ƒ  d  S(   N(   u   returned_obju   close(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   test_close^   s    c             C   s)   |  j  t |  j j ƒ  t j j ƒ ƒ d  S(   N(   u   assert_u
   isinstanceu   returned_obju   infou   emailu   messageu   Message(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_infoc   s    c             C   s    |  j  |  j j ƒ  |  j ƒ d  S(   N(   u   assertEqualu   returned_obju   geturlu   pathname(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_geturlf   s    c             C   s   |  j  |  j j ƒ  d  ƒ d  S(   N(   u   assertEqualu   returned_obju   getcodeu   None(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_getcodei   s    c             C   s1   x* |  j  j ƒ  D] } |  j | |  j ƒ q Wd  S(   N(   u   returned_obju   __iter__u   assertEqualu   text(   u   selfu   line(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_iterl   s     N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu   test_interfaceu	   test_readu   test_readlineu   test_readlinesu   test_filenou
   test_closeu	   test_infou   test_geturlu   test_getcodeu	   test_iter(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   urlopen_FileTests%   s   
											u   urlopen_FileTestsc             B   s)   |  Ee  Z d  „  Z d „  Z d „  Z d S(   c             C   sD   t  d „  t j j ƒ  Dƒ ƒ |  _ x |  j D] } t j | =q, Wd  S(   Nc             S   sG   g  } |  ]9 \ } } | j  ƒ  j d  ƒ d k o | | | f q
 q
 S(   u   proxyi    (   u   loweru   find(   u   .0u   _[1]u   ku   v(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   <listcomp>y   s    	(   u   dictu   osu   environu   itemsu   _saved_environ(   u   selfu   k(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   setUpw   s    "
 c             C   s1   x* |  j  j ƒ  D] \ } } | t j | <q Wd  S(   N(   u   _saved_environu   itemsu   osu   environ(   u   selfu   ku   v(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   tearDown   s     c             C   s4   d t  j d <t j j ƒ  } |  j d | d ƒ d  S(   Nu	   localhostu   NO_PROXYu   no(   u   osu   environu   urllibu   requestu   getproxies_environmentu   assertEquals(   u   selfu   proxies(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu+   test_getproxies_environment_keep_no_proxies„   s    N(   u   __name__u
   __module__u   setUpu   tearDownu+   test_getproxies_environment_keep_no_proxies(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   ProxyTestsu   s   
		u
   ProxyTestsc             B   sA   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   u.   Test urlopen() opening a fake http connection.c                sW   Gd „  d t  j ƒ ‰  G‡  ‡ f d †  d t j j ƒ } t j j |  _ | t j _ d  S(   Nc             B   s8   |  Ee  Z d  „  Z d „  Z d d „ Z d d „ Z d S(   c             S   s   d  S(   N(    (   u   selfu   str(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   sendall   s    c             S   s   |  S(   N(    (   u   selfu   modeu   name(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   makefile‘   s    c             S   s"   |  j  o d St j j |  | ƒ S(   Ns    (   u   closedu   iou   BytesIOu   read(   u   selfu   amt(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   read’   s    
 c             S   s"   |  j  o d St j j |  | ƒ S(   Ns    (   u   closedu   iou   BytesIOu   readline(   u   selfu   length(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   readline•   s    
 N(   u   __name__u
   __module__u   sendallu   makefileu   Noneu   readu   readline(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   FakeSocket   s   
		u
   FakeSocketc                s    |  Ee  Z ‡ ‡  f d  †  Z d S(   c                s   ˆ ˆ  ƒ |  _  d  S(   N(   u   sock(   u   self(   u   fakedatau
   FakeSocket(    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   connect™   s    N(   u   __name__u
   __module__u   connect(   u
   __locals__(   u
   FakeSocketu   fakedata(    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   FakeHTTPConnection˜   s   
u   FakeHTTPConnection(   u   iou   BytesIOu   httpu   clientu   HTTPConnectionu   _connection_class(   u   selfu   fakedatau   FakeHTTPConnection(    (   u
   FakeSocketu   fakedatau-   /mit/python/lib/python3.0/test/test_urllib.pyu   fakehttpŽ   s    	"c             C   s   |  j  t j _ d  S(   N(   u   _connection_classu   httpu   clientu   HTTPConnection(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   unfakehttpž   s    c          	   C   s‡   |  j  d ƒ zh t d ƒ } |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ Wd  |  j ƒ  Xd  S(   Ns   Hello!u   http://python.org/s    iÈ   (   u   fakehttpu   urlopenu   assertEqualu   readlineu   geturlu   getcodeu
   unfakehttp(   u   selfu   fp(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_read¡   s    c          
   C   s6   |  j  d ƒ z |  j t t d ƒ Wd  |  j ƒ  Xd  S(   NsÎ   HTTP/1.1 401 Authentication Required
Date: Wed, 02 Jan 2008 03:03:54 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) mod_ssl/2.8.22 OpenSSL/0.9.7e
Connection: close
Content-Type: text/html; charset=iso-8859-1
u   http://python.org/(   u   fakehttpu   assertRaisesu   IOErroru   urlopenu
   unfakehttp(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_read_bogus¬   s
    c          
   C   s6   |  j  d ƒ z |  j t t d ƒ Wd  |  j ƒ  Xd  S(   Ns    u   http://something(   u   fakehttpu   assertRaisesu   IOErroru   urlopenu
   unfakehttp(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_empty_socket¹   s    N(   u   __name__u
   __module__u   __doc__u   fakehttpu
   unfakehttpu	   test_readu   test_read_bogusu   test_empty_socket(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   urlopen_HttpTests‹   s   
				u   urlopen_HttpTestsc             B   sz   |  Ee  Z d  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d S(   u(   Test urllib.urlretrieve() on local filesc             C   ss   g  |  _  |  j t j ƒ d |  _ z0 t t j d ƒ } | j |  j ƒ | j ƒ  Wd  y | j ƒ  Wn Yn XXd  S(   Ns   testing urllib.urlretrieveu   wb(   u	   tempFilesu   registerFileForCleanUpu   supportu   TESTFNu   textu   openu   writeu   close(   u   selfu   FILE(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   setUpÅ   s    		  c          	   C   s4   x- |  j  D]" } y t j | ƒ Wq
 Yq
 Xq
 Wd  S(   N(   u	   tempFilesu   osu   remove(   u   selfu   each(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   tearDownÚ   s    
   c             C   s    d t  j j t j j | ƒ ƒ S(   Nu	   file://%s(   u   urllibu   requestu   pathname2urlu   osu   pathu   abspath(   u   selfu   filePath(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   constructLocalFileUrlà   s    s    c             C   sm   t  j ƒ  \ } } z: |  j | ƒ t j | d ƒ } | j | ƒ | j ƒ  Wd y | j ƒ  Wn Yn XX| S(   u¹   Creates a new temporary file containing the specified data,
        registers the file for deletion during the test fixture tear down, and
        returns the absolute path of the file.u   wbN(   u   tempfileu   mkstempu   registerFileForCleanUpu   osu   fdopenu   writeu   close(   u   selfu   datau   newFdu   newFilePathu   newFile(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   createNewTempFileä   s      c             C   s   |  j  j | ƒ d  S(   N(   u	   tempFilesu   append(   u   selfu   fileName(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   registerFileForCleanUpô   s    c             C   sW   t  j j d t j ƒ } |  j | d t j ƒ |  j t | d t j	 j
 ƒ d ƒ d  S(   Nu   file:%si    i   uE   did not get a email.message.Message instance as second returned value(   u   urllibu   requestu   urlretrieveu   supportu   TESTFNu   assertEqualu   assert_u
   isinstanceu   emailu   messageu   Message(   u   selfu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   test_basic÷   s    c             C   sÈ   d t  j } |  j | ƒ t j j |  j t  j ƒ | ƒ } |  j | | d ƒ |  j t	 j
 j | ƒ d ƒ t | d ƒ } z | j ƒ  } | j ƒ  Wd  y | j ƒ  Wn Yn XX|  j |  j | ƒ d  S(   Nu   %s.2i    u   copy of the file was not madeu   rb(   u   supportu   TESTFNu   registerFileForCleanUpu   urllibu   requestu   urlretrieveu   constructLocalFileUrlu   assertEqualu   assert_u   osu   pathu   existsu   openu   readu   closeu   text(   u   selfu   second_tempu   resultu   FILEu   text(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_copy   s      c                sU   d g ‡  f d † } d t  j } ˆ  j | ƒ t j j ˆ  j t  j ƒ | | ƒ d  S(   Ni    c                sl   ˆ  j  t |  t ƒ ƒ ˆ  j  t | t ƒ ƒ ˆ  j  t | t ƒ ƒ ˆ  j |  | d ƒ | d d | d <d  S(   Ni    i   (   u   assert_u
   isinstanceu   intu   assertEqual(   u   countu
   block_sizeu
   total_sizeu   count_holder(   u   self(    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   hooktester  s
    u   %s.2(   u   supportu   TESTFNu   registerFileForCleanUpu   urllibu   requestu   urlretrieveu   constructLocalFileUrl(   u   selfu
   hooktesteru   second_temp(    (   u   selfu-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_reporthook  s    	c             C   sr   g  } | d „ } |  j  ƒ  } t j j |  j | ƒ t j | ƒ |  j t | ƒ d ƒ |  j | d d d ƒ d  S(   Nc             S   s   | j  |  | | f ƒ d  S(   N(   u   append(   u   countu
   block_sizeu
   total_sizeu   _report(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   hooktester#  s    i   i    i   (	   u   createNewTempFileu   urllibu   requestu   urlretrieveu   constructLocalFileUrlu   supportu   TESTFNu   assertEqualu   len(   u   selfu   reportu
   hooktesteru   srcFileName(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_reporthook_0_bytes   s    c             C   s   g  } | d „ } |  j  d ƒ } t j j |  j | ƒ t j | ƒ |  j t | ƒ d ƒ |  j | d d d ƒ |  j | d d d ƒ d  S(	   Nc             S   s   | j  |  | | f ƒ d  S(   N(   u   append(   u   countu
   block_sizeu
   total_sizeu   _report(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   hooktester1  s    s   xi   i   i    i   i    s   xxxxx(	   u   createNewTempFileu   urllibu   requestu   urlretrieveu   constructLocalFileUrlu   supportu   TESTFNu   assertEqualu   len(   u   selfu   reportu
   hooktesteru   srcFileName(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_reporthook_5_bytes+  s    c             C   s‘   g  } | d „ } |  j  d d ƒ } t j j |  j | ƒ t j | ƒ |  j t | ƒ d ƒ |  j | d d d ƒ |  j | d d d ƒ d  S(	   Nc             S   s   | j  |  | | f ƒ d  S(   N(   u   append(   u   countu
   block_sizeu
   total_sizeu   _report(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   hooktester?  s    s   xi   i   i    i   i    i   (	   u   createNewTempFileu   urllibu   requestu   urlretrieveu   constructLocalFileUrlu   supportu   TESTFNu   assertEqualu   len(   u   selfu   reportu
   hooktesteru   srcFileName(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_reporthook_8193_bytes:  s    N(   u   __name__u
   __module__u   __doc__u   setUpu   tearDownu   constructLocalFileUrlu   createNewTempFileu   registerFileForCleanUpu
   test_basicu	   test_copyu   test_reporthooku   test_reporthook_0_bytesu   test_reporthook_5_bytesu   test_reporthook_8193_bytes(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   urlretrieve_FileTestsÂ   s   
										u   urlretrieve_FileTestsc             B   s\   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 S(
   uu  Tests for urllib.quote() and urllib.quote_plus()

    According to RFC 2396 (Uniform Resource Identifiers), to escape a
    character you write it as '%' + <2 character US-ASCII hex value>.
    The Python code of ``'%' + hex(ord(<character>))[2:]`` escapes a
    character properly. Case does not matter on the hex letters.

    The various character sets specified are:

    Reserved characters : ";/?:@&=+$,"
        Have special meaning in URIs and must be escaped if not being used for
        their special meaning
    Data characters : letters, digits, and "-_.!~*'()"
        Unreserved and do not need to be escaped; can be, though, if desired
    Control characters : 0x00 - 0x1F, 0x7F
        Have no use in URIs so must be escaped
    space : 0x20
        Must be escaped
    Delimiters : '<>#%"'
        Must be escaped
    Unwise : "{}|\^[]`"
        Must be escaped

    c             C   s}   d j  d d d d g ƒ } t j j | ƒ } |  j | | d | | f ƒ t j j | ƒ } |  j | | d | | f ƒ d  S(   Nu    u   ABCDEFGHIJKLMNOPQRSTUVWXYZu   abcdefghijklmnopqrstuvwxyzu
   0123456789u   _.-u   using quote(): %r != %ru   using quote_plus(): %r != %r(   u   joinu   urllibu   parseu   quoteu   assertEqualu
   quote_plus(   u   selfu   do_not_quoteu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_never_quoteb  s    	c             C   s!   |  j  t j j j d d ƒ d  S(   Ni    u   /(   u   assertEqualu   urllibu   parseu   quoteu   __defaults__(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_default_safeo  s    c             C   s[  d } t  j j | d | ƒ} |  j | | d | | f ƒ t  j j | d | ƒ} |  j | | d | | f ƒ t  j j | d d ƒ} |  j | | d | | f ƒ t  j j d d d d d	 ƒ} t  j j d d d d d
 ƒ} |  j | | d | | f ƒ t  j j d d d d d ƒ} t  j j d d d d d
 ƒ} |  j | | d | | f ƒ d  S(   Nu   <>u   safeu   using quote(): %r != %ru   using quote_plus(): %r != %rs   <>u   aÃ¼bu   encodingu   latin-1u   Ã¼u    s   ü(   u   urllibu   parseu   quoteu   assertEqualu
   quote_plus(   u   selfu   quote_by_defaultu   resultu   expect(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_safes  s*    c             C   s1  d „  t  d ƒ Dƒ } | j d ƒ | j t d ƒ ƒ d j | ƒ } xŠ | D]‚ } t j j | ƒ } |  j t | ƒ | d | t | ƒ | f ƒ t j j	 | ƒ } |  j t | ƒ | d | t | ƒ | f ƒ qL W~ d } d	 } t j j | ƒ } |  j | | d
 | | f ƒ |  j | | d | | f ƒ d  S(   Nc             S   s!   g  } |  ] } | t  | ƒ q
 S(    (   u   chr(   u   .0u   _[1]u   num(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   <listcomp>’  s    i    u   <>#%"{}|\^[]`i   u    u1   using quote(): %s should be escaped to %s, not %su6   using quote_plus(): %s should be escapes to %s, not %su   ab[]cdu
   ab%5B%5Dcdu   using quote(): %r != %ru   using quote_plus(): %r != %r(
   u   rangeu   appendu   chru   joinu   urllibu   parseu   quoteu   assertEqualu	   hexescapeu
   quote_plus(   u   selfu   should_quoteu   charu   resultu   partial_quoteu   expected(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_default_quoting  s,     c             C   sö   t  j j d ƒ } |  j | t d ƒ d | t d ƒ f ƒ t  j j d ƒ } |  j | d d | ƒ d } | j d t d ƒ ƒ } t  j j | ƒ } |  j | | d | | f ƒ | j d d ƒ } t  j j | ƒ } |  j | | d | | f ƒ d  S(   Nu    u   using quote(): %r != %ru   +u   using quote_plus(): %r != +u
   a b cd e fu   using quote_plus(): %r != %r(   u   urllibu   parseu   quoteu   assertEqualu	   hexescapeu
   quote_plusu   replace(   u   selfu   resultu   givenu   expect(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quoting_space©  s    c             C   sz   |  j  t j j d ƒ d ƒ |  j  t j j d d ƒ d ƒ |  j  t j j d ƒ d ƒ |  j  t j j d d ƒ d ƒ d  S(   Nu   alpha+beta gammau   alpha%2Bbeta+gammau   +u   alpha+beta+gammas   alpha+beta gammas   +(   u   assertEqualu   urllibu   parseu
   quote_plus(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quoting_plus¼  s    c             C   s   d } d } t  j j | ƒ } |  j | | d | | f ƒ |  j t t  j j | d d ƒt  j j | ƒ } |  j | | d | | f ƒ d  S(   Ns   ¢Øabÿu   %A2%D8ab%FFu   using quote(): %r != %ru   encodingu   latin-1u"   using quote_from_bytes(): %r != %r(   u   urllibu   parseu   quoteu   assertEqualu   assertRaisesu	   TypeErroru   quote_from_bytes(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quote_bytesÈ  s    c             C   s©  d } d } t  j j | ƒ } |  j | | d | | f ƒ t  j j | d d  d d  ƒ} |  j | | d | | f ƒ d } d } t  j j | d d ƒ} |  j | | d | | f ƒ d } d	 } t  j j | ƒ } |  j | | d | | f ƒ d } |  j t t  j j | d d ƒd } d
 } t  j j | d d d d ƒ} |  j | | d | | f ƒ d } d } t  j j | d d d d ƒ} |  j | | d | | f ƒ d  S(   Nu   Â¢Ã˜abÃ¿u   %C2%A2%C3%98ab%C3%BFu   using quote(): %r != %ru   encodingu   errorsu   %A2%D8ab%FFu   latin-1u   æ¼¢å­—u   %E6%BC%A2%E5%AD%97u   %3F%3Fu   replaceu   %26%2328450%3B%26%2323383%3Bu   xmlcharrefreplace(   u   urllibu   parseu   quoteu   assertEqualu   Noneu   assertRaisesu   UnicodeEncodeError(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quote_with_unicodeØ  sB    		N(   u   __name__u
   __module__u   __doc__u   test_never_quoteu   test_default_safeu	   test_safeu   test_default_quotingu   test_quoting_spaceu   test_quoting_plusu   test_quote_bytesu   test_quote_with_unicode(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   QuotingTestsH  s   
							u   QuotingTestsc             B   sS   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d S(	   uw   Tests for unquote() and unquote_plus()

    See the doc string for quoting_Tests for details on quoting and such.

    c             C   sî   g  } x t  d ƒ D] } t t | ƒ ƒ } t | ƒ } t j j | ƒ } |  j | | d | | f ƒ t j j | ƒ } |  j | | d | | f ƒ | j | ƒ q Wd j	 | ƒ } ~ t j j | ƒ } |  j | j
 d ƒ d d | ƒ d  S(   Ni€   u   using unquote(): %r != %ru   using unquote_plus(): %r != %ru    u   %i   u/   using unquote(): not all characters escaped: %s(   u   rangeu	   hexescapeu   chru   urllibu   parseu   unquoteu   assertEqualu   unquote_plusu   appendu   joinu   count(   u   selfu   escape_listu   numu   givenu   expectu   resultu   escape_string(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquoting	  s&     c             C   s  d } | } t  j j | ƒ } |  j | | d | | f ƒ d } | } t  j j | ƒ } |  j | | d | | f ƒ d } | } t  j j | ƒ } |  j | | d | | f ƒ d } t | d ƒ } t  j j | ƒ } |  j | | d | | f ƒ d } t | d ƒ } t  j j | ƒ } |  j | | d | | f ƒ d } t | d ƒ } t  j j | ƒ } |  j | | d | | f ƒ d  S(   Nu   %xabu   using unquote(): %r != %ru   %xu   %u   asciiu"   using unquote_to_bytes(): %r != %r(   u   urllibu   parseu   unquoteu   assertEqualu   bytesu   unquote_to_bytes(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquoting_badpercent  s<    c             C   s?   d } d } t  j j | ƒ } |  j | | d | | f ƒ d  S(   Nu   %Ab%eAs   «êu"   using unquote_to_bytes(): %r != %r(   u   urllibu   parseu   unquote_to_bytesu   assertEqual(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquoting_mixed_case@  s    c             C   sx   d t  d ƒ } d } t j j | ƒ } |  j | | d | | f ƒ t j j | ƒ } |  j | | d | | f ƒ d  S(   Nu   ab%sdu   cu   abcdu   using quote(): %r != %ru   using unquote_plus(): %r != %r(   u	   hexescapeu   urllibu   parseu   unquoteu   assertEqualu   unquote_plus(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquoting_partsI  s    c             C   s€   d } | } t  j j | ƒ } |  j | | d | | f ƒ | j d d ƒ } t  j j | ƒ } |  j | | d | | f ƒ d  S(   Nu   are+there+spaces...u   using unquote(): %r != %ru   +u    u   using unquote_plus(): %r != %r(   u   urllibu   parseu   unquoteu   assertEqualu   replaceu   unquote_plus(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquoting_plusU  s    c             C   sê   d } d } t  j j | ƒ } |  j | | d | | f ƒ t  j j d ƒ } d } |  j | | d | | f ƒ d } d } t  j j | ƒ } |  j | | d | | f ƒ d } d } t  j j | ƒ } |  j | | d | | f ƒ d  S(	   Nu"   br%C3%BCckner_sapporo_20050930.docs   brÃ¼ckner_sapporo_20050930.docu"   using unquote_to_bytes(): %r != %ru	   æ¼¢%C3%BCs   æ¼¢Ã¼s   %A2%D8ab%FFs   ¢Øabÿs	   %A2Øab%FF(   u   urllibu   parseu   unquote_to_bytesu   assertEqual(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquote_to_bytesa  s.    c             C   s  d } d } t  j j | ƒ } |  j | | d | | f ƒ t  j j | d d  d d  ƒ} |  j | | d | | f ƒ t  j j d d d ƒ} d } |  j | | d | | f ƒ d } d	 } t  j j | ƒ } |  j | | d | | f ƒ d
 } d } t  j j | ƒ } |  j | | d | | f ƒ t  j j | d d ƒ} |  j | | d | | f ƒ d
 } d } t  j j | d d ƒ} |  j | | d | | f ƒ t  j j d ƒ } d } |  j | | d | | f ƒ t  j j d d d ƒ} d } |  j | | d | | f ƒ d  S(   Nu"   br%C3%BCckner_sapporo_20050930.docu   brÃ¼ckner_sapporo_20050930.docu   using unquote(): %r != %ru   encodingu   errorsu   br%FCckner_sapporo_20050930.docu   latin-1u   %E6%BC%A2%E5%AD%97u   æ¼¢å­—u   %F3%B1u   ï¿½u   replaceu    u   ignoreu	   æ¼¢%C3%BCu   æ¼¢Ã¼u   æ¼¢%FC(   u   urllibu   parseu   unquoteu   assertEqualu   None(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_unquote_with_unicode€  sN    	N(
   u   __name__u
   __module__u   __doc__u   test_unquotingu   test_unquoting_badpercentu   test_unquoting_mixed_caseu   test_unquoting_partsu   test_unquoting_plusu   test_unquote_to_bytesu   test_unquote_with_unicode(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   UnquotingTests  s   
		"					u   UnquotingTestsc             B   sA   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   u   Tests for urlencode()c       	   
   C   s  d d d g } t  j j | ƒ } x1 | D]) } |  j | | k d | | | f ƒ q( W|  j | j d ƒ d d | | j d ƒ f ƒ | j d ƒ } | | d } | | d } |  j | j ƒ  o
 | j ƒ  d	 | | f ƒ |  j t | ƒ d d | t | ƒ d f ƒ d S(   u  Helper method for testing different input types.

        'given' must lead to only the pairs:
            * 1st, 1
            * 2nd, 2
            * 3rd, 3

        Test cannot assume anything about order.  Docs make no guarantee and
        have possible dictionary input.

        u   1st=1u   2nd=2u   3rd=3u   testing %s: %s not found in %su   &i   u#   testing %s: expected 2 '&'s; got %si   u1   testing %s: '&' not located in proper place in %si   i   u5   testing %s: unexpected number of characters: %s != %sNi   i   i   i   (	   u   urllibu   parseu	   urlencodeu   assert_u   assertEqualu   countu   indexu   isdigitu   len(	   u   selfu   givenu	   test_typeu   expect_somewhereu   resultu   expectedu   amp_locationu   on_amp_leftu   on_amp_right(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   help_inputtype½  s&     c             C   s)   |  j  i d d 6d d 6d d 6d ƒ d  S(   Nu   1u   1stu   2u   2ndu   3u   3rdu   using dict as input type(   u   help_inputtype(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_using_mappingÝ  s    c             C   s   |  j  d d	 d
 g d ƒ d  S(   Nu   1stu   1u   2ndu   2u   3rdu   3u*   using sequence of two-item tuples as input(   u   1stu   1(   u   2ndu   2(   u   3rdu   3(   u   help_inputtype(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_using_sequenceâ  s    c             C   s„   i d d 6} d t  d ƒ t  d ƒ f } t j j | ƒ } |  j | | ƒ i d d 6} d } t j j | ƒ } |  j | | ƒ d  S(   Nu   =u   &u   %s=%su   A bunch of plusesu   key nameu   key+name=A+bunch+of+pluses(   u	   hexescapeu   urllibu   parseu	   urlencodeu   assertEqual(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quotingç  s    c             C   sÞ   i d d d g d 6} d t  j j t d d d g ƒ ƒ } t  j j | ƒ } |  j | | ƒ t  j j | d
 ƒ } x< | d D]0 } d | } |  j | | k d | | f ƒ q} W|  j | j d ƒ d d	 | j d ƒ ƒ d  S(   Nu   1u   2u   3u   sequenceu   sequence=%su   %s not found in %su   &i   u   Expected 2 '&'s, got %sT(	   u   urllibu   parseu
   quote_plusu   stru	   urlencodeu   assertEqualu   Trueu   assert_u   count(   u   selfu   givenu   expectu   resultu   value(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   test_doseqò  s    % 
N(   u   __name__u
   __module__u   __doc__u   help_inputtypeu   test_using_mappingu   test_using_sequenceu   test_quotingu
   test_doseq(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   urlencode_Testsº  s   
	 			u   urlencode_Testsc             B   s&   |  Ee  Z d  Z d „  Z d „  Z d S(   u&   Test pathname2url() and url2pathname()c             C   sƒ   t  j j d d d d ƒ } d } t j j | ƒ } |  j | | d | | f ƒ t j j | ƒ } |  j | | d | | f ƒ d  S(   Nu   partsu   ofu   au   pathu   parts/of/a/pathu   pathname2url() failed; %s != %su   url2pathame() failed; %s != %s(   u   osu   pathu   joinu   urllibu   requestu   pathname2urlu   assertEqualu   url2pathname(   u   selfu   expected_pathu   expected_urlu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu
   test_basic  s    c             C   s:  t  j j d d d ƒ } d t j j d ƒ } t j j | ƒ } |  j | | d | | f ƒ | } t j j	 | ƒ } |  j | | d | | f ƒ t  j j d d ƒ } d	 t j j d ƒ } t j j | ƒ } |  j | | d | | f ƒ d
 } t  j j d d ƒ } t j j	 | ƒ } |  j | | d | | f ƒ d  S(   Nu   needsu   quot=ingu   hereu   needs/%s/hereu   pathname2url() failed; %s != %su   url2pathname() failed; %s != %su	   make sureu   using_quoteu   %s/using_quoteu   make+sure/using_unquoteu	   make+sureu   using_unquote(
   u   osu   pathu   joinu   urllibu   parseu   quoteu   requestu   pathname2urlu   assertEqualu   url2pathname(   u   selfu   givenu   expectu   result(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   test_quoting  s.    N(   u   __name__u
   __module__u   __doc__u
   test_basicu   test_quoting(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   Pathname_Tests   s   
	u   Pathname_Testsc            	   C   s&   t  j t t t t t t t t	 ƒ d  S(   N(
   u   supportu   run_unittestu   urlopen_FileTestsu   urlopen_HttpTestsu   urlretrieve_FileTestsu
   ProxyTestsu   QuotingTestsu   UnquotingTestsu   urlencode_Testsu   Pathname_Tests(    (    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu	   test_main{  s    u   __main__(   u   __doc__u   urllib.parseu   urllibu   urllib.requestu   http.clientu   httpu   email.messageu   emailu   iou   unittestu   testu   supportu   osu   tempfileu	   hexescapeu   Noneu
   _urlopeneru   urlopenu   TestCaseu   urlopen_FileTestsu
   ProxyTestsu   urlopen_HttpTestsu   urlretrieve_FileTestsu   QuotingTestsu   UnquotingTestsu   urlencode_Testsu   Pathname_Testsu	   test_mainu   __name__(    (    (    u-   /mit/python/lib/python3.0/test/test_urllib.pyu   <module>   s.   	P7†º¸F{	