Ñò
‘à"Ic           @   s`  d  Z  d d k Z d d k Z d d k Z d d k l Z d d k Z d d k Z d d k Z d d k	 Z	 d „  Z
 d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d	 e i f d
 „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z e d j o e ƒ  n d S(   s   Regresssion tests for urllibiÿÿÿÿN(   t   test_supportc         C   sE   t  t |  ƒ ƒ d i ƒ  } t | ƒ d j o d | } n d | S(   s!   Escape char as RFC 2396 specifiesi   i   s   0%st   %(   t   hext   ordt   uppert   len(   t   chart   hex_repr(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   hexescape   s    t   urlopen_FileTestsc           B   sz   e  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 RS(   s©   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   sp   d |  i  i |  _ t t i d ƒ } z | i |  i ƒ Wd | i ƒ  Xt i |  _ t	 i
 d |  i ƒ |  _ d S(   s'   Setup of a temp file to use for testings   test_urllib: %s
t   wbNs   file:%s(   t	   __class__t   __name__t   textt   fileR    t   TESTFNt   writet   closet   pathnamet   urllibt   urlopent   returned_obj(   t   selft   FILE(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   setUp   s    c         C   s!   |  i  i ƒ  t i t i ƒ d S(   s   Shut down the open objectN(   R   R   t   ost   removeR    R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   tearDown&   s    c      	   C   s5   x. d D]& } |  i  t |  i | ƒ d
 | ƒ q Wd  S(   Nt   readt   readlinet	   readlinest   filenoR   t   infot   geturlt   getcodet   __iter__s/   object returned by urlopen() lacks %s attribute(	   s   reads   readlines	   readliness   filenos   closes   infos   geturls   getcodes   __iter__(   t   assert_t   hasattrR   (   R   t   attr(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_interface+   s     c         C   s    |  i  |  i |  i i ƒ  ƒ d  S(   N(   t   assertEqualR   R   R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_read3   s    c         C   s<   |  i  |  i |  i i ƒ  ƒ |  i  d |  i i ƒ  d ƒ d  S(   Nt    sK   calling readline() after exhausting the file did not return an empty string(   R(   R   R   R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_readline6   s    c         C   sF   |  i  i ƒ  } |  i t | ƒ d d ƒ |  i | d |  i d ƒ d  S(   Ni   s.   readlines() returned the wrong number of linesi    s"   readlines() returned improper text(   R   R   R(   R   R   (   R   t
   lines_list(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_readlines<   s
    c         C   sW   |  i  i ƒ  } |  i t | t ƒ d ƒ |  i t i | t |  i	 ƒ ƒ |  i	 d ƒ d  S(   Ns   fileno() did not return an intsT   Reading on the file descriptor returned by fileno() did not return the expected text(
   R   R   R$   t
   isinstancet   intR(   R   R   R   R   (   R   t   file_num(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_filenoC   s
    $c         C   s   |  i  i ƒ  d  S(   N(   R   R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt
   test_closeK   s    c         C   s&   |  i  t |  i i ƒ  t i ƒ ƒ d  S(   N(   R$   R.   R   R    t	   mimetoolst   Message(   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_infoP   s    c         C   s    |  i  |  i i ƒ  |  i ƒ d  S(   N(   R(   R   R!   R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_geturlS   s    c         C   s   |  i  |  i i ƒ  d  ƒ d  S(   N(   R(   R   R"   t   None(   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_getcodeV   s    c         C   s1   x* |  i  i ƒ  D] } |  i | |  i ƒ q Wd  S(   N(   R   R#   R(   R   (   R   t   line(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_iterY   s     (   R   t
   __module__t   __doc__R   R   R'   R)   R+   R-   R1   R2   R5   R6   R8   R:   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR	      s   											t
   ProxyTestsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s‘   t  i i |  ƒ t g  } t i i ƒ  D]9 \ } } | i ƒ  i d ƒ d j o | | | f q' q' ~ ƒ |  _	 x |  i	 D] } t i | =qy Wd  S(   Nt   proxyi    (
   t   unittestt   TestCaseR   t   dictR   t   environt	   iteritemst   lowert   findt   _saved_environ(   R   t   _[1]t   kt   v(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR   d   s    #<
 c         C   s;   t  i i |  ƒ x$ |  i D] \ } } | t i | <q Wd  S(   N(   R?   R@   R   RF   R   RB   (   R   RH   RI   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR   m   s    
 c         C   s1   d t  i d <t i ƒ  } |  i d | d ƒ d  S(   Nt	   localhostt   NO_PROXYt   no(   R   RB   R   t   getproxies_environmentt   assertEquals(   R   t   proxies(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt+   test_getproxies_environment_keep_no_proxiess   s    (   R   R;   R   R   RP   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR=   b   s   			t   urlopen_HttpTestsc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s.   Test urlopen() opening a fake http connection.c            sK   d t  i  f d „  ƒ  Y‰ d t i f ‡ ‡  f d †  ƒ  Y} | t i _ d  S(   Nt
   FakeSocketc           B   s2   e  Z d  „  Z d „  Z d d „ Z d d „ Z RS(   c         S   s   d  S(   N(    (   R   t   str(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   sendall   s    c         S   s   |  S(   N(    (   R   t   modet   name(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   makefile€   s    c         S   s"   |  i  o d St i i |  | ƒ S(   NR*   (   t   closedt   StringIOR   (   R   t   amt(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR      s    
 c         S   s"   |  i  o d St i i |  | ƒ S(   NR*   (   RX   RY   R   (   R   t   length(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR   „   s    
 N(   R   R;   RT   RW   R7   R   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRR   ~   s   		t   FakeHTTPConnectionc              s   e  Z ‡ ‡  f d  †  Z RS(   c            s   ˆ ˆ  ƒ |  _  d  S(   N(   t   sock(   R   (   t   fakedataRR   (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   connectˆ   s    (   R   R;   R_   (    (   RR   R^   (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR\   ‡   s   (   RY   t   httplibt   HTTPConnectiont   HTTPt   _connection_class(   R   R^   R\   (    (   R^   RR   s-   /mit/python/lib/python2.6/test/test_urllib.pyt   fakehttp}   s    	"c         C   s   t  i t  i _ d  S(   N(   R`   Ra   Rb   Rc   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt
   unfakehttp   s    c         C   sŠ   |  i  d ƒ zk t i d ƒ } |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ |  i | i ƒ  d ƒ Wd  |  i ƒ  Xd  S(   Ns   Hello!s   http://python.org/R*   iÈ   (   Rd   R   R   R(   R   R!   R"   Re   (   R   t   fp(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR)      s    c         C   s9   |  i  d ƒ z |  i t t i d ƒ Wd  |  i ƒ  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
s   http://python.org/(   Rd   t   assertRaisest   IOErrorR   R   Re   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_read_bogus›   s
    c         C   s9   |  i  d ƒ z |  i t t i d ƒ Wd  |  i ƒ  Xd  S(   NR*   s   http://something(   Rd   Rg   Rh   R   R   Re   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_empty_socket¨   s    (   R   R;   R<   Rd   Re   R)   Ri   Rj   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRQ   z   s   				t   urlretrieve_FileTestsc           B   st   e  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 RS(   s(   Test urllib.urlretrieve() on local filesc         C   sr   g  |  _  |  i t i ƒ d |  _ z0 t t i d ƒ } | i |  i ƒ | i ƒ  Wd  y | i ƒ  Wn n XXd  S(   Ns   testing urllib.urlretrieveR
   (   t	   tempFilest   registerFileForCleanUpR    R   R   R   R   R   (   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR   ´   s    		  c         C   s3   x, |  i  D]! } y t i | ƒ Wq
 q
 Xq
 Wd  S(   N(   Rl   R   R   (   R   t   each(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR   É   s    
   c         C   s   d t  i t i i | ƒ ƒ S(   Ns	   file://%s(   R   t   pathname2urlR   t   patht   abspath(   R   t   filePath(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   constructLocalFileUrlÏ   s    R*   c         C   sl   t  i ƒ  \ } } z: |  i | ƒ t i | d ƒ } | i | ƒ | i ƒ  Wd y | i ƒ  Wn n XX| S(   s¹   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.R
   N(   t   tempfilet   mkstempRm   R   t   fdopenR   R   (   R   t   datat   newFdt   newFilePatht   newFile(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   createNewTempFileÒ   s      c         C   s   |  i  i | ƒ d  S(   N(   Rl   t   append(   R   t   fileName(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRm   â   s    c         C   sQ   t  i d t i ƒ } |  i | d t i ƒ |  i t | d t i ƒ d ƒ d  S(   Ns   file:%si    i   sA   did not get a mimetools.Message instance as second returned value(	   R   t   urlretrieveR    R   R(   R$   R.   R3   R4   (   R   t   result(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt
   test_basicå   s    c      	   C   sÄ   d t  i } |  i | ƒ t i |  i t  i ƒ | ƒ } |  i | | d ƒ |  i t i	 i
 | ƒ d ƒ t | d ƒ } z | i ƒ  } | i ƒ  Wd  y | i ƒ  Wn n XX|  i |  i | ƒ d  S(   Ns   %s.2i    s   copy of the file was not madet   rb(   R    R   Rm   R   R~   Rs   R(   R$   R   Rp   t   existsR   R   R   R   (   R   t   second_tempR   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_copyî   s      c            sR   d g ‡  f d † } d t  i } ˆ  i | ƒ t i ˆ  i t  i ƒ | | ƒ d  S(   Ni    c            sl   ˆ  i  t |  t ƒ ƒ ˆ  i  t | t ƒ ƒ ˆ  i  t | t ƒ ƒ ˆ  i |  | d ƒ | d d | d <d  S(   Ni    i   (   R$   R.   R/   R(   (   t   countt
   block_sizet
   total_sizet   count_holder(   R   (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt
   hooktester  s
    s   %s.2(   R    R   Rm   R   R~   Rs   (   R   R‰   Rƒ   (    (   R   s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_reporthook   s
    c         C   so   g  } | d „ } |  i  ƒ  } t i |  i | ƒ t i | ƒ |  i t | ƒ d ƒ |  i | d d d ƒ d  S(   Nc         S   s   | i  |  | | f ƒ d  S(   N(   R|   (   R…   R†   R‡   t   _report(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR‰     s    i   i    i   (   R{   R   R~   Rs   R    R   R(   R   (   R   t   reportR‰   t   srcFileName(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_reporthook_0_bytes  s    c         C   sŠ   g  } | d „ } |  i  d ƒ } t i |  i | ƒ t i | ƒ |  i t | ƒ d ƒ |  i | d d d ƒ |  i | d d d ƒ d  S(	   Nc         S   s   | i  |  | | f ƒ d  S(   N(   R|   (   R…   R†   R‡   R‹   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR‰     s    t   xi   i   i    i   i    t   xxxxx(   R{   R   R~   Rs   R    R   R(   R   (   R   RŒ   R‰   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_reporthook_5_bytes  s    c         C   sŽ   g  } | d „ } |  i  d d ƒ } t i |  i | ƒ t i | ƒ |  i t | ƒ d ƒ |  i | d d d ƒ |  i | d d d ƒ d  S(	   Nc         S   s   | i  |  | | f ƒ d  S(   N(   R|   (   R…   R†   R‡   R‹   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR‰   ,  s    R   i   i   i    i   i    i   (   R{   R   R~   Rs   R    R   R(   R   (   R   RŒ   R‰   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_reporthook_8193_bytes'  s    (   R   R;   R<   R   R   Rs   R{   Rm   R€   R„   RŠ   RŽ   R‘   R’   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRk   ±   s   										t   QuotingTestsc           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sw  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   sw   d i  d d d d g ƒ } t i | ƒ } |  i | | d | | f ƒ t i | ƒ } |  i | | d | | f ƒ d  S(   NR*   t   ABCDEFGHIJKLMNOPQRSTUVWXYZt   abcdefghijklmnopqrstuvwxyzt
   0123456789s   _.-s   using quote(): %s != %ss   using quote_plus(): %s != %s(   t   joinR   t   quoteR(   t
   quote_plus(   R   t   do_not_quoteR   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_never_quoteO  s    	c         C   s   |  i  t i i d d ƒ d  S(   Ni    t   /(   R(   R   R˜   t   func_defaults(   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_default_safe\  s    c         C   sn   d } t  i | d | ƒ} |  i | | d | | f ƒ t  i | d | ƒ} |  i | | d | | f ƒ d  S(   Ns   <>t   safes   using quote(): %s != %ss   using quote_plus(): %s != %s(   R   R˜   R(   R™   (   R   t   quote_by_defaultR   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_safe`  s    c      
   C   s?  g  } t  d ƒ D] } | t | ƒ q ~ } | i d ƒ | i t d ƒ ƒ d i | ƒ } x„ | D]| } t i | ƒ } |  i t | ƒ | d | t | ƒ | f ƒ t i | ƒ } |  i t | ƒ | d | t | ƒ | f ƒ qc W~ d } d } t i | ƒ } |  i | | d	 | | f ƒ |  i | | d
 | | f ƒ d  S(   Ni    s   <>#%"{}|\^[]`i   R*   s1   using quote(): %s should be escaped to %s, not %ss6   using quote_plus(): %s should be escapes to %s, not %ss   ab[]cds
   ab%5B%5Dcds   using quote(): %s != %ss   using quote_plus(): %s != %s(	   t   ranget   chrR|   R—   R   R˜   R(   R   R™   (   R   RG   t   numt   should_quoteR   R   t   partial_quotet   expected(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_default_quotingk  s,    - c         C   sê   t  i d ƒ } |  i | t d ƒ d | t d ƒ f ƒ t  i d ƒ } |  i | d d | ƒ d } | i d t d ƒ ƒ } t  i | ƒ } |  i | | d | | f ƒ | i d d ƒ } t  i | ƒ } |  i | | d | | f ƒ d  S(   Nt    s   using quote(): %s != %st   +s   using quote_plus(): %s != +s
   a b cd e fs   using quote_plus(): %s != %s(   R   R˜   R(   R   R™   t   replace(   R   R   t   givent   expect(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_quoting_space…  s    c         C   s9   |  i  t i d ƒ d ƒ |  i  t i d d ƒ d ƒ d  S(   Ns   alpha+beta gammas   alpha%2Bbeta+gammaRª   s   alpha+beta+gamma(   R(   R   R™   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_quoting_plus˜  s    (	   R   R;   R<   R›   Rž   R¡   R¨   R®   R¯   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR“   5  s   					t   UnquotingTestsc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sw   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 i | ƒ } |  i | | d | | f ƒ t i | ƒ } |  i | | d | | f ƒ | i | ƒ q Wd i | ƒ } ~ t i | ƒ } |  i | i	 d ƒ d d | ƒ t i | ƒ } |  i | i	 d ƒ d d | ƒ d  S(	   Ni€   s   using unquote(): %s != %ss   using unquote_plus(): %s != %sR*   R   i   s-   using quote(): not all characters escaped; %ss/   using unquote(): not all characters escaped: %s(
   R¢   R   R£   R   t   unquoteR(   t   unquote_plusR|   R—   R…   (   R   t   escape_listR¤   R¬   R­   R   t   escape_string(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_unquoting¥  s.     c         C   sr   d t  d ƒ } d } t i | ƒ } |  i | | d | | f ƒ t i | ƒ } |  i | | d | | f ƒ d  S(   Ns   ab%sdt   ct   abcds   using quote(): %s != %ss   using unquote_plus(): %s != %s(   R   R   R±   R(   R²   (   R   R¬   R­   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_unquoting_parts¾  s    c         C   sz   d } | } t  i | ƒ } |  i | | d | | f ƒ | i d d ƒ } t  i | ƒ } |  i | | d | | f ƒ d  S(   Ns   are+there+spaces...s   using unquote(): %s != %sRª   R©   s   using unquote_plus(): %s != %s(   R   R±   R(   R«   R²   (   R   R¬   R­   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_unquoting_plusÊ  s    c         C   s#   t  i d ƒ } |  i | d ƒ d  S(   Nu"   br%C3%BCckner_sapporo_20050930.docu    brÃƒÂ¼ckner_sapporo_20050930.doc(   R   R±   R(   (   R   t   r(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_unquote_with_unicodeÖ  s    (   R   R;   R<   Rµ   R¸   R¹   R»   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR°   ž  s
   			t   urlencode_Testsc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   Tests for urlencode()c   	   
   C   s	  d d d g } t  i | ƒ } x1 | D]) } |  i | | j d | | | f ƒ q% W|  i | i d ƒ d d | | i d ƒ f ƒ | i d ƒ } | | d } | | d } |  i | i ƒ  o
 | i ƒ  d	 | | f ƒ |  i t | ƒ d d | t | ƒ d f ƒ d S(   s  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.

        s   1st=1s   2nd=2s   3rd=3s   testing %s: %s not found in %st   &i   s#   testing %s: expected 2 '&'s; got %si   s1   testing %s: '&' not located in proper place in %si   i   s5   testing %s: unexpected number of characters: %s != %sNi   i   i   i   (   R   t	   urlencodeR$   R(   R…   t   indext   isdigitR   (	   R   R¬   t	   test_typet   expect_somewhereR   R§   t   amp_locationt   on_amp_leftt   on_amp_right(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   help_inputtypeÝ  s&     c         C   s)   |  i  h d d 6d d 6d d 6d ƒ d  S(   Nt   1t   1stt   2t   2ndt   3t   3rds   using dict as input type(   RÆ   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_using_mappingý  s    c         C   s   |  i  d d	 d
 g d ƒ d  S(   NRÈ   RÇ   RÊ   RÉ   RÌ   RË   s*   using sequence of two-item tuples as input(   s   1stRÇ   (   s   2ndRÉ   (   s   3rdRË   (   RÆ   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_using_sequence  s    c         C   s~   h d d 6} d t  d ƒ t  d ƒ f } t i | ƒ } |  i | | ƒ h d d 6} d } t i | ƒ } |  i | | ƒ d  S(   Nt   =R½   s   %s=%ss   A bunch of plusess   key names   key+name=A+bunch+of+pluses(   R   R   R¾   R(   (   R   R¬   R­   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   test_quoting  s    c         C   sÕ   h d d d g d 6} d t  i t d d d g ƒ ƒ } t  i | ƒ } |  i | | ƒ t  i | t ƒ } x< | d D]0 } d | } |  i | | j d | | f ƒ qt W|  i | i d ƒ d d	 | i d ƒ ƒ d  S(
   NRÇ   RÉ   RË   t   sequences   sequence=%ss   %s not found in %sR½   i   s   Expected 2 '&'s, got %s(   R   R™   RS   R¾   R(   t   TrueR$   R…   (   R   R¬   R­   R   t   value(    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt
   test_doseq  s    " 
(   R   R;   R<   RÆ   RÍ   RÎ   RÐ   RÔ   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR¼   Ú  s   	 			t   Pathname_Testsc           B   s    e  Z d  Z d „  Z d „  Z RS(   s&   Test pathname2url() and url2pathname()c         C   s}   t  i i d d d d ƒ } d } t i | ƒ } |  i | | d | | f ƒ t i | ƒ } |  i | | d | | f ƒ d  S(   Nt   partst   oft   aRp   s   parts/of/a/paths   pathname2url() failed; %s != %ss   url2pathame() failed; %s != %s(   R   Rp   R—   R   Ro   R(   t   url2pathname(   R   t   expected_patht   expected_urlR   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyR€   #  s    c         C   s(  t  i i d d d ƒ } d t i d ƒ } t i | ƒ } |  i | | d | | f ƒ | } t i | ƒ } |  i | | d | | f ƒ t  i i d d ƒ } d	 t i d ƒ } t i | ƒ } |  i | | d | | f ƒ d
 } t  i i d d ƒ } t i | ƒ } |  i | | d | | f ƒ d  S(   Nt   needss   quot=ingt   heres   needs/%s/heres   pathname2url() failed; %s != %ss   url2pathname() failed; %s != %ss	   make suret   using_quotes   %s/using_quotes   make+sure/using_unquotes	   make+suret   using_unquote(   R   Rp   R—   R   R˜   Ro   R(   RÙ   (   R   R¬   R­   R   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRÐ   0  s.    (   R   R;   R<   R€   RÐ   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyRÕ      s   	c          C   sc   d d  k  }  |  i ƒ  i i ƒ  z9 |  i d d t ƒ t i t t	 t
 t t t t t ƒ Wd  QXd  S(   Niÿÿÿÿt   ignores   .*urllib\.urlopen.*Python 3.0(   t   warningst   catch_warningst   __exit__t	   __enter__t   filterwarningst   DeprecationWarningR    t   run_unittestR	   RQ   Rk   R=   R“   R°   R¼   RÕ   (   Rá   (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt	   test_main›  s    t   __main__(   R<   R   R`   R?   t   testR    R   R3   Rt   RY   R   R@   R	   R=   RQ   Rk   R“   R°   R¼   RÕ   Rè   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_urllib.pyt   <module>   s(   	O7„i<F{	