ó
­«Y]c           @   sÄ  y d  d l  Z  Wn e k
 r) e Z  n Xd  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	 Z	 d  d l
 m
 Z
 d  d l m Z d  d l m Z m Z m Z d  d l	 m Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z y e j e ƒ Wn e e f k
 rJe Z n Xe d Z  e d	 Z! d
 Z" d d f d d f d d f d d f g Z# d „  Z$ d e	 j% f d „  ƒ  YZ& d e	 j% f d „  ƒ  YZ' d e	 j% f d „  ƒ  YZ( d e	 j% f d „  ƒ  YZ) d e	 j% f d „  ƒ  YZ* d e	 j% f d „  ƒ  YZ+ e e  d  ƒ d! e	 j% f d" „  ƒ  Yƒ Z, d# e	 j% f d$ „  ƒ  YZ- d% e	 j% f d& „  ƒ  YZ. d' e	 j% f d( „  ƒ  YZ/ d) „  Z0 e1 d* k rÀe0 ƒ  n  d S(+   iÿÿÿÿN(   t   StringIO(   t   TemporaryFile(   t   randintt   randomt   getrandbits(   t
   skipUnless(   t   script_helper(	   t   TESTFNt   TESTFN_UNICODEt   TESTFN_ENCODINGt   run_unittestt   findfilet   unlinkt   rmtreet   check_warningst   captured_stdoutt   2t   diè  t	   _ziptest1t
   1q2w3e4r5ts   ziptest2dir/_ziptest2t
   qawsedrftgs!   ziptest2dir/ziptest3dir/_ziptest3t
   azsxdcfvgbs-   ziptest2dir/ziptest3dir/ziptest4dir/_ziptest3t
   6y7u8i9o0pc         C   s+   t  t j d d |  t d |  ƒ f ƒ ƒ S(   Ns   %0*xi   i   (   t   bytest	   bytearrayt   fromhexR   (   t   size(    (    s"   lib/python2.7/test/test_zipfile.pyt   getrandbytes(   s    t   TestsWithSourceFilec           B   sN  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 d „  Z d „  Z d „  Z d „  Z d „  Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d  „  Z# d! „  Z$ d" „  Z% e e d ƒ d# „  ƒ Z& d$ „  Z' d% „  Z( d& „  Z) d' „  Z* e e+ d( ƒ d) „  ƒ Z, d* „  Z- d+ „  Z. d, „  Z/ d- „  Z0 d. „  Z1 d/ „  Z2 d0 „  Z3 d1 „  Z4 RS(2   c         C   st   g  t  t ƒ D] } d | t ƒ  f ^ q |  _ d j |  j ƒ d |  _ t t d ƒ  } | j |  j ƒ Wd  QXd  S(   Ns&   Zipfile test line %d. random float: %fs   
t   wb(	   t   xranget   FIXEDTEST_SIZER   t   line_gent   joint   datat   openR   t   write(   t   selft   it   fp(    (    s"   lib/python2.7/test/test_zipfile.pyt   setUp,   s
    ,c         C   sU   t  j | d | ƒ : } | j t d ƒ | j t t ƒ | j d |  j ƒ Wd  QXd  S(   Nt   ws   another.namet   strfile(   t   zipfilet   ZipFileR$   R   t   writestrR"   (   R%   t   ft   compressiont   zipfp(    (    s"   lib/python2.7/test/test_zipfile.pyt   make_test_archive5   s    c      	   C   sò  |  j  | | ƒ t j | d | ƒ Ç} |  j | j t ƒ |  j ƒ |  j | j d ƒ |  j ƒ |  j | j d ƒ |  j ƒ t ƒ  } t j	 } z | t _	 | j
 ƒ  Wd  | t _	 X| j ƒ  } | j ƒ  } |  j t | ƒ d ƒ |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ | d	 j ƒ  \ } }	 }
 } |  j | d ƒ |  j t j |	 d
 ƒ ƒ |  j t j |
 d ƒ ƒ |  j | t t |  j ƒ ƒ ƒ | j ƒ  } |  j t | ƒ d ƒ |  j t | ƒ |  j d | ƒ |  j d | ƒ | j ƒ  } g  | D] } | j ^ qþ} |  j t | ƒ d ƒ |  j t | ƒ |  j d | ƒ |  j d | ƒ x* | D]" } |  j | j t |  j ƒ ƒ q`WxU t d d f D]D } | j | ƒ } |  j | j | ƒ |  j | j t |  j ƒ ƒ q–W| j ƒ  Wd  QXd  S(   Nt   rs   another.nameR*   i   s	   File Namei    t   Modifiedt   Sizei   s   %Y-%m-%ds   %H:%M:%Si   (   R1   R+   R,   t   assertEqualt   readR   R"   R    t   syst   stdoutt   printdirt   getvaluet
   splitlinest   lent   assertInt   splitt
   assertTruet   timet   strptimet   strt   namelistt   infolistt   filenamet	   file_sizet   getinfot   testzip(   R%   R.   R/   R0   R'   R8   t	   directoryt   linest   fnt   datet   time_R   t   namest   infosR&   t   nmt   info(    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_test<   sP    			
  c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   t   TESTFN2R   R    RR   R+   t
   ZIP_STORED(   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_storedv   s    c   	      C   s  |  j  | | ƒ t j | d | ƒ á } g  } | j t ƒ : } x0 t rr | j d ƒ } | sb Pn  | j | ƒ qC WWd  QXg  } | j d ƒ : } x0 t rÃ | j d ƒ } | s³ Pn  | j | ƒ q” WWd  QX|  j d j	 | ƒ |  j
 ƒ |  j d j	 | ƒ |  j
 ƒ Wd  QXd  S(   NR2   i   s   another.namet    (   R1   R+   R,   R#   R   t   TrueR6   t   appendR5   R!   R"   (	   R%   R.   R/   R0   t   zipdata1t   zipopen1t	   read_datat   zipdata2t   zipopen2(    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_open_testz   s$    		c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R^   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_open_stored’   s    c         C   sI  t  j t d t  j ƒ ] } | j d d ƒ t d t f ƒ  | j d d ƒ Wd  QX|  j | j ƒ  d g d ƒ Wd  QXt  j t d ƒ º } | j	 ƒ  } d } x6 | D]. } | j
 | ƒ  } | | j ƒ  7} Wd  QXq¥ W|  j | d k pò | d	 k ƒ d } x! | D] } | | j | ƒ 7} qW|  j | d k p;| d	 k ƒ Wd  QXd  S(
   NR)   t   namet   fooRV   t   bari   R2   t   foobart   barfoo(   R+   R,   RS   RT   R-   R   t   UserWarningR5   RC   RD   R#   R6   R?   (   R%   R0   RO   R"   RQ   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_open_via_zip_info–   s     #c         C   s¨   |  j  | | ƒ t j | d | ƒ } } g  } | j t ƒ C } x9 t r{ | j t d d ƒ ƒ } | sk Pn  | j | ƒ qC WWd  QX|  j	 d j
 | ƒ |  j ƒ Wd  QXd  S(   NR2   i   i   RV   (   R1   R+   R,   R#   R   RW   R6   R   RX   R5   R!   R"   (   R%   R.   R/   R0   RY   RZ   R[   (    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_random_open_testª   s    	c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rg   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_random_open_stored¹   s    c         C   s¿   t  ƒ  } d d d } t j | d t j ƒ  } | j t | ƒ Wd  QXd } t j | d ƒ = } | j t d ƒ " } x | D] } | | 7} q WWd  QXWd  QX|  j | | j d d	 ƒ ƒ d  S(
   Ns   a
i   i   R)   RV   R2   t   rUs   
s   
(	   R    R+   R,   RT   R-   R   R#   R5   t   replace(   R%   R.   R"   R0   t   data2t   zipopent   line(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_universal_readaheads½   s    	c      
   C   s°   |  j  | | ƒ t j | d ƒ u } | j t ƒ ] } d } xM t rŒ | j ƒ  } | s\ Pn  | | 7} | j d ƒ } | s Pn  | | 7} q@ WWd  QXWd  QX|  j | |  j	 ƒ d  S(   NR2   RV   id   (
   R1   R+   R,   R#   R   RW   t   readlineR6   R5   R"   (   R%   R.   R/   R0   Rl   R"   R6   (    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_readline_read_testÌ   s    	
c         C   s{   |  j  | | ƒ t j | d ƒ S } | j t ƒ ; } x1 |  j D]& } | j ƒ  } |  j | | d ƒ qA WWd  QXWd  QXd  S(   NR2   s   
(   R1   R+   R,   R#   R   R    Ro   R5   (   R%   R.   R/   R0   Rl   Rm   t   linedata(    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_readline_testà   s    c         C   sŠ   |  j  | | ƒ t j | d ƒ b } | j t ƒ J } | j ƒ  } x4 t |  j | ƒ D]  \ } } |  j | | d ƒ qV WWd  QXWd  QXd  S(   NR2   s   
(	   R1   R+   R,   R#   R   t	   readlinest   zipR    R5   (   R%   R.   R/   R0   t   zot   ziplinesRm   t   zipline(    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_readlines_testê   s    c      	   C   so   |  j  | | ƒ t j | d ƒ G } x= t |  j | j t ƒ ƒ D]  \ } } |  j | | d ƒ qA WWd  QXd  S(   NR2   s   
(   R1   R+   R,   Rt   R    R#   R   R5   (   R%   R.   R/   R0   Rm   Rw   (    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_iterlines_testô   s    (c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rp   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readline_read_storedü   s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rr   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readline_stored  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rx   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readlines_stored  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Ry   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_iterlines_stored	  s    s   requires zlibc         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    RR   R+   t   ZIP_DEFLATED(   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_deflated  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R^   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_open_deflated  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rg   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_random_open_deflated  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rp   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readline_read_deflated  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rr   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readline_deflated"  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rx   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_readlines_deflated'  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Ry   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_iterlines_deflated,  s    c         C   s    t  j t d t  j ƒ  } | j d d ƒ Wd QXt  j t d t  j ƒ Q } | j d ƒ 9 } |  j | j d ƒ d ƒ |  j | j d ƒ d ƒ Wd QXWd QXd S(	   s>   Check for cases where compressed data is larger than original.R)   R*   t   12NR2   i   t   1R   (   R+   R,   RS   R~   R-   R#   R5   R6   (   R%   R0   t   openobj(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_low_compression1  s    c         C   so   t  j t d t  j ƒ  } | j t d ƒ Wd  QXt  j t d t  j ƒ   } |  j | j ƒ  d g ƒ Wd  QXd  S(   NR)   s	   /absoluteR2   t   absolute(   R+   R,   RS   RT   R$   R   R5   RC   (   R%   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_absolute_arcnames>  s    c      	   C   s…   t  j t d t  j ƒ  } | j t t ƒ Wd QXt  j t d t  j ƒ 6 } | j d |  j ƒ |  j | j	 ƒ  t d g ƒ Wd QXd S(   s&   Test appending to an existing zipfile.R)   Nt   aR*   (
   R+   R,   RS   RT   R$   R   R-   R"   R5   RC   (   R%   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_append_to_zip_fileE  s
    c         C   s‡  d d } t  t d ƒ  } | j | ƒ Wd QXt j t d t j ƒ  } | j t t ƒ Wd QXt  t d ƒ j } | j t | ƒ ƒ t j | d ƒ < } |  j	 | j
 ƒ  t g ƒ |  j	 | j t ƒ |  j ƒ Wd QXWd QXt  t d ƒ 2 } |  j	 | j t | ƒ ƒ | ƒ | j ƒ  } Wd QXt j | ƒ T } t j | ƒ < } |  j	 | j
 ƒ  t g ƒ |  j	 | j t ƒ |  j ƒ Wd QXWd QXd S(   s9   Test appending to an existing file that is not a zipfile.s   I am not a ZipFile!i
   R   NRŒ   t   rbR2   (   R#   RS   R$   R+   R,   RT   R   t   seekR<   R5   RC   R6   R"   t   iot   BytesIO(   R%   R"   R.   R0   t   zipfiledatat   bio(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_append_to_non_zip_fileN  s"    
( c         C   sß   t  j ƒ  D } t j | d t j ƒ  } | j t t ƒ Wd  QX| j ƒ  } Wd  QXd d } t t	 d ƒ ! } | j | ƒ | j | ƒ Wd  QXt j t	 ƒ < } |  j
 | j ƒ  t g ƒ |  j
 | j t ƒ |  j ƒ Wd  QXd  S(   NR)   s   I am not a ZipFile!i
   R   (   R   R‘   R+   R,   RT   R$   R   R:   R#   RS   R5   RC   R6   R"   (   R%   R“   R0   R’   R"   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_concatenated_zip_filee  s    
c         C   s   t  j ƒ  D } t j | d t j ƒ  } | j t t ƒ Wd  QX| j ƒ  } Wd  QXd d } t t	 d ƒ ! } | j | ƒ | j | ƒ Wd  QXt j t	 d ƒ 3 } |  j
 | j ƒ  t g ƒ | j d |  j ƒ Wd  QXt t	 d ƒ 2 } |  j
 | j t | ƒ ƒ | ƒ | j ƒ  } Wd  QXt  j | ƒ s } t j | ƒ [ } |  j
 | j ƒ  t d g ƒ |  j
 | j t ƒ |  j ƒ |  j
 | j d ƒ |  j ƒ Wd  QXWd  QXd  S(   NR)   s   I am not a ZipFile!i@B R   RŒ   R*   RŽ   (   R   R‘   R+   R,   RT   R$   R   R:   R#   RS   R5   RC   R-   R"   R6   R<   (   R%   R“   R0   R’   R"   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt$   test_append_to_concatenated_zip_files  s&    
 c      	   C   sˆ   t  j t d t  j ƒ  } | j t t ƒ Wd  QXt t d ƒ  } | j d ƒ Wd  QXt  j t d ƒ  } |  j | t  j ƒ Wd  QXd  S(   NR)   RŒ   s   
   R2   (   R+   R,   RS   RT   R$   R   R#   t   assertIsInstance(   R%   R0   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_ignores_newline_at_end‰  s    c      	   C   s¤   t  j t d t  j ƒ   } d | _ | j t t ƒ Wd  QXt t d ƒ  } | j d ƒ Wd  QXt  j t d ƒ - } |  j | t  j ƒ |  j	 | j d ƒ Wd  QXd  S(   NR)   s   this is a commentRŒ   s   abcdef
R2   (
   R+   R,   RS   RT   t   commentR$   R   R#   R—   R5   (   R%   R0   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt)   test_ignores_stuff_appended_past_comments‘  s    	c         C   sc   t  j t d ƒ K } | j t ƒ t t d ƒ & } |  j | j t ƒ | j ƒ  ƒ Wd QXWd QXd S(   s`   Check that calling ZipFile.write without arcname specified
        produces the expected result.R)   R2   N(   R+   R,   RS   R$   R   R#   R5   R6   (   R%   R0   t   fid(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_default_name›  s    c         C   s•   t  j t d ƒ } } | j t d t  j ƒ | j t d t  j ƒ | j d ƒ } | j d ƒ } |  j | j	 t  j ƒ |  j | j	 t  j ƒ Wd QXd S(   sU   Check that files within a Zip archive can have different
        compression options.R)   t   storemet	   deflatemeN(
   R+   R,   RS   R$   R   RT   R~   RG   R5   t   compress_type(   R%   R0   t   sinfot   dinfo(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_per_file_compression£  s    c      	   C   sf   t  j t d d ƒ } | j d d ƒ Wd QXt  j t d d ƒ } |  j t | j t ƒ Wd QXd S(   s]   Check that trying to call write() on a readonly ZipFile object
        raises a RuntimeError.t   modeR)   s   somefile.txtt   bogusNR2   (   R+   R,   RS   R-   t   assertRaisest   RuntimeErrorR$   R   (   R%   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_to_readonly¯  s    c         C   s$  t  j t d t  j ƒ . } x$ t D] \ } } | j | | ƒ q" WWd  QXt  j t d ƒ ¥ } x› t D]“ \ } } | j | ƒ } t j j	 t j
 ƒ  | ƒ } t j j | ƒ } |  j | | ƒ t | d ƒ  } |  j | | j ƒ  ƒ Wd  QXt j | ƒ qd WWd  QXt t j j	 t j
 ƒ  d ƒ ƒ d  S(   NR)   R2   RŽ   t   ziptest2dir(   R+   R,   RS   RT   t   SMALL_TEST_DATAR-   t   extractt   ost   pathR!   t   getcwdt   normpathR5   R#   R6   t   removeR   (   R%   R0   t   fpatht   fdatat   writtenfilet   correctfileR›   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract¸  s    c         C   sý   t  j t d t  j ƒ . } x$ t D] \ } } | j | | ƒ q" WWd  QXt  j t d ƒ ~ } | j ƒ  xj t D]b \ } } t j j	 t j
 ƒ  | ƒ } t | d ƒ  } |  j | | j ƒ  ƒ Wd  QXt j | ƒ qn WWd  QXt t j j	 t j
 ƒ  d ƒ ƒ d  S(   NR)   R2   RŽ   R¨   (   R+   R,   RS   RT   R©   R-   t
   extractallR«   R¬   R!   R­   R#   R5   R6   R¯   R   (   R%   R0   R°   R±   t   outfileR›   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract_allÏ  s    
c         C   sK   |  j  t j j | ƒ ƒ t | d ƒ  } |  j | j ƒ  | ƒ Wd  QXd  S(   NRŽ   (   R?   R«   R¬   t   isfileR#   R5   R6   (   R%   RE   t   contentR.   (    (    s"   lib/python2.7/test/test_zipfile.pyt
   check_fileà  s    s1   No Unicode filesystem semantics on this platform.c      	   C   sù   d t  j j t ƒ g } d } t j t d t j ƒ ( } x | D] } | j | | ƒ q@ WWd  QXt j t d ƒ  } xw | D]o } | j	 | ƒ } t  j j
 t  j ƒ  | ƒ } t  j j | ƒ } |  j | | ƒ |  j | | ƒ t  j | ƒ q| WWd  QXd  S(   Nu   foo.txts   Test for unicode filenameR)   R2   (   R«   R¬   t   basenameR   R+   R,   RS   RT   R-   Rª   R!   R­   R®   R5   Rº   R¯   (   R%   t   fnamesR¹   R0   t   fnameR²   R³   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract_unicode_filenameså  s    c   
      C   sß  d1 d2 d3 d4 d5 d6 d7 d8 g } t  j j d
 k ry | j d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK g ƒ n | j dL dM dN g ƒ xI| D]A\ } } d% | j ƒ  } t j t d& t j ƒ 5 } t j	 ƒ  } | | _
 dO | _ | j | | ƒ Wd  QX| j t  j d) ƒ } t  j j d* d+ d, ƒ } t  j j | | j d) ƒ Œ } t j t d- ƒ 3 } | j | | ƒ }	 |  j |	 | d. d/ | ƒWd  QX|  j | | ƒ t d* ƒ t j t d- ƒ  } | j | ƒ Wd  QX|  j | | ƒ t d* ƒ t  j j t  j ƒ  | j d) ƒ Œ } t j t d- ƒ 0 } | j | ƒ }	 |  j |	 | d. d/ | ƒWd  QX|  j | | ƒ t | j d) ƒ d0 ƒ t j t d- ƒ  } | j ƒ  Wd  QX|  j | | ƒ t | j d) ƒ d0 ƒ t  j t ƒ q– Wd  S(P   Ns
   ../foo/bars   foo/bars
   foo/../bars   foo/../../bars
   foo/bar/..s   ./../foo/bars   /foo/bars   /foo/../bars   /foo/../../bars   \s
   ..\foo\bars   ..\/foo\/bars   foo/\..\/bars   foo\/../\bars	   C:foo/bars
   C:/foo/bars   C://foo/bars
   C:\foo\bars   //conky/mountpoint/foo/bars   \\conky\mountpoint\foo\bars   ///conky/mountpoint/foo/bars   conky/mountpoint/foo/bars   \\\conky\mountpoint\foo\bars   //conky//mountpoint/foo/bars   \\conky\\mountpoint\foo\bars   //?/C:/foo/bars   \\?\C:\foo\bars   C:/../C:/foo/bars
   C_/foo/bars   a:b\c<d>e|f"g?h*is   b/c_d_e_f_g_h_is   ../../foo../../ba..rs	   foo/ba..rs	   //foo/bars   foo../ba..rs
   foo/..\barRc   R)   i€  i   t   /t   targett   subdirt   subsubR2   t   msgs
   extract %ri    (   s
   ../foo/bars   foo/bar(   s
   foo/../bars   foo/bar(   s   foo/../../bars   foo/bar(   s
   foo/bar/..s   foo/bar(   s   ./../foo/bars   foo/bar(   s   /foo/bars   foo/bar(   s   /foo/../bars   foo/bar(   s   /foo/../../bars   foo/bar(   s
   ..\foo\bars   foo/bar(   s   ..\/foo\/bars   foo/bar(   s   foo/\..\/bars   foo/bar(   s   foo\/../\bars   foo/bar(   s	   C:foo/bars   foo/bar(   s
   C:/foo/bars   foo/bar(   s   C://foo/bars   foo/bar(   s
   C:\foo\bars   foo/bar(   s   //conky/mountpoint/foo/bars   foo/bar(   s   \\conky\mountpoint\foo\bars   foo/bar(   s   ///conky/mountpoint/foo/bars   conky/mountpoint/foo/bar(   s   \\\conky\mountpoint\foo\bars   conky/mountpoint/foo/bar(   s   //conky//mountpoint/foo/bars   conky/mountpoint/foo/bar(   s   \\conky\\mountpoint\foo\bars   conky/mountpoint/foo/bar(   s   //?/C:/foo/bars   foo/bar(   s   \\?\C:\foo\bars   foo/bar(   s   C:/../C:/foo/bars
   C_/foo/bar(   s   a:b\c<d>e|f"g?h*is   b/c_d_e_f_g_h_i(   s   ../../foo../../ba..rs	   foo/ba..r(   s	   //foo/bars   foo/bar(   s   ../../foo../../ba..rs   foo../ba..r(   s
   foo/..\bars
   foo/..\bari  €(   R«   R¬   t   sept   extendt   encodeR+   R,   RS   RT   t   ZipInfoRE   t   external_attrR-   Rj   R!   R>   Rª   R5   Rº   R   Rµ   R­   R¯   (
   R%   t	   hacknamest   arcnamet	   fixednameR¹   R0   t   zinfot
   targetpathR³   R²   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract_hackers_arcnamesù  s‚    	
		

$c         C   s¤   t  j t d ƒ } | j d d d t  j ƒt rM | j d d d t  j ƒn  | j d ƒ } |  j | j	 t  j ƒ t r  | j d ƒ } |  j | j	 t  j ƒ n  d  S(   NR)   s   a.txts   hello worldRŸ   s   b.txt(
   R+   R,   RS   R-   RT   t   zlibR~   RG   R5   RŸ   (   R%   R0   RQ   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_writestr_compressionJ  s    c         C   sQ   |  j  | | ƒ t j | d ƒ ) } | j d ƒ } |  j | j d ƒ Wd  QXd  S(   NR2   R*   i€  i   i  €(   R1   R+   R,   RG   R5   RÈ   (   R%   R.   R/   R0   RÌ   (    (    s"   lib/python2.7/test/test_zipfile.pyt   zip_test_writestr_permissionsX  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    RÑ   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_writestr_permissionsa  s    c         C   sÅ   t  j t d ƒ G } x= t D]5 \ } } | j | | ƒ |  j | j d k	 d ƒ q WWd QX|  j | j d k d ƒ t  j t d ƒ   } |  j | j d k	 d ƒ Wd QX|  j | j d k d ƒ d S(   s8   Check that the zipfile is closed after the 'with' block.R)   s   zipfp is not openNs   zipfp is not closedR2   (   R+   R,   RS   R©   R-   R?   R'   t   None(   R%   R0   R°   R±   (    (    s"   lib/python2.7/test/test_zipfile.pyt
   test_closee  s    #c         C   s¡   t  j t d ƒ . } x$ t D] \ } } | j | | ƒ q WWd QXy+ t  j t d ƒ  } t  j ƒ  ‚ Wd QXWn- t  j k
 rœ |  j | j d k d ƒ n Xd S(   sW   Check that the zipfile is closed if an exception is raised in the
        'with' block.R)   NR2   s   zipfp is not closed(	   R+   R,   RS   R©   R-   t
   BadZipfileR?   R'   RÓ   (   R%   R0   R°   R±   t   zipfp2(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_close_on_exceptionq  s    c         C   sE   t  j t d ƒ t j t d ƒ  } |  j t | j t ƒ Wd  QXd  S(   Ni    R)   (   i    i    (	   R«   t   utimeR   R+   R,   RS   R¥   t
   ValueErrorR$   (   R%   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_add_file_before_1980~  s    c         C   s   t  t ƒ t  t ƒ d  S(   N(   R   R   RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   tearDown„  s    
(5   t   __name__t
   __module__R(   R1   RR   RU   R^   R_   Rf   Rg   Rh   Rn   Rp   Rr   Rx   Ry   Rz   R{   R|   R}   R   RÏ   R   R€   R   R‚   Rƒ   R„   R…   R‰   R‹   R   R”   R•   R–   R˜   Rš   Rœ   R¢   R§   R´   R·   Rº   R   R¾   RÎ   RÐ   RÑ   RÒ   RÔ   R×   RÚ   RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyR   +   s`   				:									
	
													
							Q							t   TestZip64InSmallFilesc           B   sƒ   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e e	 d ƒ d „  ƒ Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C   s   t  j |  _ t  j |  _ d t  _ d t  _ d „  t d t ƒ Dƒ } d j | ƒ |  _ t	 t
 d ƒ  } | j |  j ƒ Wd  QXd  S(   Niè  i	   c         s   s   |  ] } d  | Vq d S(   s   Test of zipfile line %d.N(    (   t   .0R&   (    (    s"   lib/python2.7/test/test_zipfile.pys	   <genexpr>“  s   i    s   
R   (   R+   t   ZIP64_LIMITt   _limitt   ZIP_FILECOUNT_LIMITt   _filecount_limitt   rangeR   R!   R"   R#   R   R$   (   R%   R    R'   (    (    s"   lib/python2.7/test/test_zipfile.pyR(     s    		c      	   C   s>   t  j | d | ƒ # } |  j t  j | j t d ƒ Wd  QXd  S(   NR)   s   another.name(   R+   R,   R¥   t   LargeZipFileR$   R   (   R%   R.   R/   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   large_file_exception_test›  s    c      	   C   sA   t  j | d | ƒ & } |  j t  j | j d |  j ƒ Wd  QXd  S(   NR)   s   another.name(   R+   R,   R¥   Rå   R-   R"   (   R%   R.   R/   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyt   large_file_exception_test2   s    c         C   sJ   xC t  t ƒ  t ƒ  f D], } |  j | t j ƒ |  j | t j ƒ q Wd  S(   N(   RS   R   R    Ræ   R+   RT   Rç   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_large_file_exception¥  s    c      
   C   s9  t  j | d | d t ƒ: } | j t d ƒ | j t t ƒ | j d |  j ƒ Wd  QXt  j | d | ƒ Ç} |  j | j t ƒ |  j ƒ |  j | j d ƒ |  j ƒ |  j | j d ƒ |  j ƒ t	 ƒ  } t
 j } z | t
 _ | j ƒ  Wd  | t
 _ X| j ƒ  } | j ƒ  } |  j t | ƒ d ƒ |  j d | d ƒ |  j d	 | d ƒ |  j d
 | d ƒ | d j ƒ  \ } }	 }
 } |  j | d ƒ |  j t j |	 d ƒ ƒ |  j t j |
 d ƒ ƒ |  j | t t |  j ƒ ƒ ƒ | j ƒ  } |  j t | ƒ d ƒ |  j t | ƒ |  j d | ƒ |  j d | ƒ | j ƒ  } g  | D] } | j ^ qE} |  j t | ƒ d ƒ |  j t | ƒ |  j d | ƒ |  j d | ƒ x* | D]" } |  j | j t |  j ƒ ƒ q§WxU t d d f D]D } | j | ƒ } |  j | j | ƒ |  j | j t |  j ƒ ƒ qÝW| j ƒ  Wd  QXd  S(   NR)   t
   allowZip64s   another.nameR*   R2   i   s	   File Namei    R3   R4   i   s   %Y-%m-%ds   %H:%M:%Si   (   R+   R,   RW   R$   R   R-   R"   R5   R6   R    R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   (   R%   R.   R/   R0   R'   R8   RI   RJ   RK   RL   RM   R   RN   RO   R&   RP   RQ   (    (    s"   lib/python2.7/test/test_zipfile.pyRR   ª  sV    			
  c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    RR   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyRU   è  s    s   requires zlibc         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    RR   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR   ì  s    c         C   su   t  j t d t  j d t ƒ } | j t d ƒ Wd  QXt  j t d t  j ƒ   } |  j | j ƒ  d g ƒ Wd  QXd  S(   NR)   Ré   s	   /absoluteR2   RŠ   (	   R+   R,   RS   RT   RW   R$   R   R5   RC   (   R%   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyR‹   ñ  s
    c         C   s  t  j t d d d t ƒ} d | _ d } x4 t | ƒ D]& } | j d | d | d d	 ƒ q7 W|  j t | j	 ƒ  ƒ | ƒ | j
 ƒ  t  j t d d
 ƒ} |  j t | j	 ƒ  ƒ | ƒ xC t | ƒ D]5 } | j d | ƒ } |  j | d | d d	 ƒ qÅ W| j
 ƒ  d  S(   NR£   R)   Ré   id   i   s   foo%08ds   %di   i9   R2   (   R+   R,   R   RW   t   debugRä   R-   R5   R<   RC   t   closeR6   (   R%   t   zipft   numfilesR&   t   zipf2R¹   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_too_many_filesù  s    	$
 c         C   sŽ  t  j t d d d t ƒ} d | _ d } x4 t | ƒ D]& } | j d | d | d d	 ƒ q7 W|  j t | j	 ƒ  ƒ | ƒ |  j
 t  j ƒ  | j d | d
 ƒ Wd  QX|  j t | j	 ƒ  ƒ | ƒ | j ƒ  t  j t d d d t ƒ} d | _ |  j t | j	 ƒ  ƒ | ƒ |  j
 t  j ƒ  | j d | d
 ƒ Wd  QX|  j t | j	 ƒ  ƒ | ƒ | j ƒ  t  j t d d d t ƒ} d | _ |  j t | j	 ƒ  ƒ | ƒ d } x7 t | | ƒ D]& } | j d | d | d d	 ƒ q¹W|  j t | j	 ƒ  ƒ | ƒ | j ƒ  t  j t d d ƒ} |  j t | j	 ƒ  ƒ | ƒ xC t | ƒ D]5 } | j d | ƒ } |  j | d | d d	 ƒ qGW| j ƒ  d  S(   NR£   R)   Ré   id   i	   s   foo%08ds   %di   i9   RV   RŒ   i   R2   (   R+   R,   R   t   FalseRê   Rä   R-   R5   R<   RC   R¥   Rå   Rë   RW   R6   (   R%   Rì   Rí   R&   t	   numfiles2Rî   R¹   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_too_many_files_append  s>    	$
	
	$
 c      
   C   sè   t  j t d d t ƒ } | j d |  j ƒ Wd  QXt  j t d d t ƒ } | j d ƒ } | j } Wd  QXt  j t d d t ƒ } | j d |  j ƒ Wd  QXt  j t d d t ƒ) } | j d ƒ } |  j | j | ƒ Wd  QXd  S(   NR)   Ré   R*   R2   RŒ   t   strfile2(	   R+   R,   RS   RW   R-   R"   RG   t   extraR5   (   R%   R0   RÌ   Rô   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_append/  s    c         C   s0   |  j  t _ |  j t _ t t ƒ t t ƒ d  S(   N(   Rá   R+   Rà   Rã   Râ   R   R   RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   =  s    
(   RÜ   RÝ   R(   Ræ   Rç   Rè   RR   RU   R   RÏ   R   R‹   Rï   Rò   Rõ   RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyRÞ   ‰  s   					>				$	t   PyZipFileTestsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s–   t  j | t  j ƒ s% |  j d ƒ n  t  j j | d ƒ } y- t  j | t  j t  j Bƒ } t  j	 | ƒ Wn t
 k
 r‡ |  j d ƒ n Xt | ƒ d  S(   Ns/   requires write access to the installed locations   test_zipfile.try(   R«   t   accesst   W_OKt   skipTestR¬   R!   R#   t   O_WRONLYt   O_CREATRë   t	   ExceptionR   (   R%   R¬   RE   t   fd(    (    s"   lib/python2.7/test/test_zipfile.pyt   requiresWriteAccessE  s    c      	   C   s‰  |  j  t j j t ƒ ƒ t j t ƒ  d ƒ   } t } | j d ƒ sU | j d ƒ rb | d  } n  | j	 | ƒ t j j
 | ƒ } |  j | | j ƒ  ƒ |  j | d | j ƒ  k pÆ | d | j ƒ  k ƒ Wd  QXt j t ƒ  d ƒ ž } t } | j d	 ƒ r
| d  } n  | j	 | d ƒ d d t j j
 | ƒ f } |  j | | j ƒ  ƒ |  j | d | j ƒ  k p{| d | j ƒ  k ƒ Wd  QXd  S(
   NR)   s   .pycs   .pyoiÿÿÿÿt   ot   ct   testpackages   %s/%s(   s   .pycs   .pyo(   Rþ   R«   R¬   t   dirnamet   __file__R+   t	   PyZipFileR   t   endswitht   writepyR»   t   assertNotInRC   R?   (   R%   R0   RK   t   bn(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_pyfileP  s&    c         C   s§   d d  l  } t j j | j ƒ } |  j | ƒ t j t ƒ  d ƒ ^ } | j	 | ƒ | j
 ƒ  } |  j d | k pz d | k ƒ |  j d | k p™ d | k ƒ Wd  QXd  S(   NiÿÿÿÿR)   s   email/__init__.pyos   email/__init__.pycs   email/mime/text.pyos   email/mime/text.pyc(   t   emailR«   R¬   R  R  Rþ   R+   R  R   R  RC   R?   (   R%   R
  t
   packagedirR0   RN   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_python_packagej  s    c         C   s;  t  j t ƒ zt t  j j t d ƒ d ƒ  } | j d ƒ Wd  QXt t  j j t d ƒ d ƒ  } | j d ƒ Wd  QXt t  j j t d ƒ d ƒ  } | j d ƒ Wd  QXt j t	 ƒ  d ƒ } | j
 t ƒ | j ƒ  } |  j d | k põ d	 | k ƒ |  j d
 | k pd | k ƒ |  j d | ƒ Wd  t t ƒ Xd  S(   Ns   mod1.pyR)   s
   print(42)
s   mod2.pys   print(42 * 42)
s   mod2.txts   bla bla bla
s   mod1.pycs   mod1.pyos   mod2.pycs   mod2.pyo(   R«   t   mkdirRS   R#   R¬   R!   R$   R+   R  R   R  RC   R?   R  R   (   R%   R'   R0   RN   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_python_directoryz  s    !!!c      
   C   sj   t  j t ƒ  d ƒ O } t t d ƒ  } | j d ƒ Wd  QX|  j t | j t ƒ t	 j
 t ƒ Wd  QXd  S(   NR)   s!   most definitely not a python file(   R+   R  R   R#   R   R$   R¥   R¦   R  R«   R¯   (   R%   R0   R›   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_non_pyfile‘  s
    (   RÜ   RÝ   Rþ   R	  R  R  R  (    (    (    s"   lib/python2.7/test/test_zipfile.pyRö   D  s
   				t
   OtherTestsc           B   s  e  Z i d  e j 6d e j 6Z 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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e e d ƒ d „  ƒ Z d „  Z d „  Z  e e d ƒ d „  ƒ Z! d „  Z" d „  Z# e e d ƒ d „  ƒ Z$ d  „  Z% d! „  Z& d" „  Z' d# „  Z( d$ „  Z) RS(%   sx   PK      ‹Š;:r«ÿ         afilehello,AworldPK      ‹Š;:r«ÿ                 €    afilePK      3   /     s|   PK    n}=FAKE   n      afileËHÍÉÉW(Ï/ÊIÉ = PK    n}=FAKE   n              €    afilePK      3   3     c         C   s«   t  j t d ƒ D } | j d d ƒ | j d d ƒ |  j | j ƒ  d j t ƒ Wd  QXt  j t d ƒ ; } |  j | j	 d j d ƒ |  j | j	 d j d ƒ Wd  QXd  S(	   NR)   u   foo.txts   Test for unicode filenameu   Ã¶.txti    R2   s   foo.txti   (
   R+   R,   R   R-   R—   RD   RE   t   unicodeR5   t   filelist(   R%   t   zf(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_unicode_filenames¯  s    #c         C   sÏ   t  j j t ƒ r" t  j t ƒ n  d } d } y/ t j t d ƒ  } | j | | ƒ Wd  QXWn t k
 r} |  j	 d ƒ n X|  j
 t  j j t ƒ ƒ t j t d ƒ   } |  j | j | ƒ | ƒ Wd  QXd  S(   Ns   testfile.txts#   hello, world. this is some content.RŒ   s1   Could not append data to a non-existent zip file.R2   (   R«   R¬   t   existsR   R   R+   R,   R-   t   IOErrort   failR?   R5   R6   (   R%   RE   R¹   R  (    (    s"   lib/python2.7/test/test_zipfile.pyt(   test_create_non_existent_file_for_append¹  s    c         C   sS   t  t d ƒ  } | j d ƒ Wd  QXy t j t ƒ } Wn t j k
 rN n Xd  S(   NR)   s   this is not a legal zip file
(   R#   R   R$   R+   R,   RÕ   (   R%   R'   R  (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_close_erroneous_fileË  s    c         C   sÚ   t  t d ƒ  } | j d ƒ Wd QXt j t ƒ } |  j | ƒ t  t d ƒ $ } t j | ƒ } |  j | ƒ Wd QXt ƒ  } | j d ƒ t j | ƒ } |  j | ƒ | j d d ƒ t j | ƒ } |  j | ƒ d S(   s;   Check that is_zipfile() correctly identifies non-zip files.R)   s   this is not a legal zip file
NRŽ   i    (	   R#   R   R$   R+   t
   is_zipfilet   assertFalseR?   R    R   (   R%   R'   t   chk(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_is_zip_erroneous_fileÚ  s    	c         C   s“   t  j ƒ  } t j | d d ƒ } | j d d ƒ Wd QX| j ƒ  } xF t t | ƒ ƒ D]2 } t  j | |  ƒ } |  j t j	 t j | ƒ qY Wd S(   sC   Check that zipfiles with missing bytes at the end raise BadZipFile.R£   R)   s   foo.txts   O, for a Muse of Fire!N(
   R   R‘   R+   R,   R-   R:   Rä   R<   R¥   RÕ   (   R%   R'   Rì   R’   t   N(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_damaged_zipfileî  s    c         C   sü   t  j t d d ƒ } | j d d ƒ Wd QXt  j t ƒ } |  j | ƒ t t d ƒ ? } t  j | ƒ } |  j | ƒ | j d d ƒ | j ƒ  } Wd QXt	 ƒ  } | j
 | ƒ t  j | ƒ } |  j | ƒ | j d d ƒ t  j | ƒ } |  j | ƒ d S(   s7   Check that is_zipfile() correctly identifies zip files.R£   R)   s   foo.txts   O, for a Muse of Fire!NRŽ   i    (   R+   R,   R   R-   R  R?   R#   R   R6   R    R$   (   R%   Rì   R  R'   t   zip_contents(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_is_zip_valid_fileü  s     	c         C   s   |  j  t t j t ƒ d  S(   N(   R¥   R  R+   R,   R   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt%   test_non_existent_file_raises_IOError  s    c         C   ss   t  t d ƒ  } Wd  QX|  j t j t j t ƒ t  t d ƒ  } | j d ƒ Wd  QX|  j t j t j t ƒ d  S(   NR)   s
   short file(   R#   R   R¥   R+   RÕ   R,   R$   (   R%   R.   R'   (    (    s"   lib/python2.7/test/test_zipfile.pyt!   test_empty_file_raises_BadZipFile   s    c      	   C   sÎ   t  ƒ  } t j | d d ƒ } | j d d ƒ Wd QX|  j t | j d ƒ |  j t | j d ƒ |  j t | j ƒ |  j t | j d d ƒ t t	 d ƒ * } | j
 d ƒ |  j t | j
 t	 ƒ Wd QXd S(	   s?   Verify that testzip() doesn't swallow inappropriate exceptions.R£   R)   s   foo.txts   O, for a Muse of Fire!Ns	   bogus.txtR¤   s   zipfile test data(   R    R+   R,   R-   R¥   R¦   R6   R#   RH   R   R$   (   R%   R"   Rì   R›   (    (    s"   lib/python2.7/test/test_zipfile.pyt#   test_closed_zip_raises_RuntimeError)  s    	c         C   s   |  j  t t j t d ƒ d S(   s>   Check that bad modes passed to ZipFile constructor are caught.t   qN(   R¥   R¦   R+   R,   R   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_bad_constructor_mode;  s    c      
   C   sv   t  j t d d ƒ } | j d d ƒ Wd QXt  j t d d ƒ- } | j d ƒ |  j t | j d d ƒ Wd QXd S(   s7   Check that bad modes passed to ZipFile.open are caught.R£   R)   s   foo.txts   O, for a Muse of Fire!NR2   R%  (   R+   R,   R   R-   R6   R¥   R¦   R#   (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_bad_open_mode?  s
    c         C   s   t  j t d d ƒu } | j d d ƒ | j d ƒ M } x- t t ƒ D] } |  j | j d ƒ d ƒ qG W|  j | j ƒ  d ƒ Wd QXWd QXd S(   ss   Check that calling read(0) on a ZipExtFile object returns an empty
        string and doesn't advance file pointer.R£   R)   s   foo.txts   O, for a Muse of Fire!i    RV   N(	   R+   R,   R   R-   R#   R   R   R5   R6   (   R%   Rì   R.   R&   (    (    s"   lib/python2.7/test/test_zipfile.pyt
   test_read0I  s    c      	   C   s;   t  j t d d ƒ  } |  j t | j d d ƒ Wd QXd S(   sq   Check that attempting to call open() for an item that doesn't
        exist in the archive raises a RuntimeError.R£   R)   s   foo.txtR2   N(   R+   R,   R   R¥   t   KeyErrorR#   (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_open_non_existent_itemU  s    c         C   s    |  j  t t j t d d ƒ d S(   sM   Check that bad compression methods passed to ZipFile.open are
        caught.R)   iÿÿÿÿN(   R¥   R¦   R+   R,   R   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_bad_compression_mode[  s    c         C   sD   d } t  j t j | ƒ d ƒ  } |  j t | j d ƒ Wd  QXd  S(   Nsf   PK.    äC¡@              x PK..    äC¡@                      €    xPK      /   !     R2   t   x(   R+   R,   R   R‘   R¥   t   NotImplementedErrorR#   (   R%   R"   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_unsupported_compression`  s    c         C   sK   t  j t d d ƒ0 } | j d d ƒ |  j | j ƒ  d g ƒ Wd QXd S(   sL   Check that a filename containing a null byte is properly
        terminated.R£   R)   s   foo.txt qqqs   O, for a Muse of Fire!s   foo.txtN(   R+   R,   R   R-   R5   RC   (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_null_byte_in_filenamek  s    c         C   sP   |  j  t j d ƒ |  j  t j d ƒ |  j  t j d ƒ |  j  t j d ƒ d S(   sA   Check that ZIP internal structure sizes are calculated correctly.i   i.   i8   i   N(   R5   R+   t   sizeEndCentDirt   sizeCentralDirt   sizeEndCentDir64t   sizeEndCentDir64Locator(   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_struct_sizesr  s    c         C   s  t  j t d d ƒ* } |  j | j d ƒ | j d d ƒ Wd QXt  j t d d ƒ } |  j | j d ƒ Wd QXd } t  j t d d ƒ  } | | _ | j d d ƒ Wd QXt  j t d d ƒ } |  j | j | ƒ Wd QXd j g  t d ƒ D] } d | d d ^ qó ƒ } t  j t d d ƒ  } | | _ | j d d ƒ Wd QXt  j t d d ƒ } |  j | j | ƒ Wd QXt  j t d d ƒ= } t d t	 f ƒ  | d | _ Wd QX| j d d ƒ Wd QXt  j t d d ƒ } |  j | j | ƒ Wd QXd S(   s8   Check that comments on the archive are handled properly.R£   R)   RV   s   foo.txts   O, for a Muse of Fire!NR2   s9   Bravely taking to his feet, he beat a very brave retreat.i   i   s   %di   i
   t   oopsi   iÿÿ  (
   R+   R,   R   R5   R™   R-   R!   R   R   Re   (   R%   Rì   R™   R&   t   comment2(    (    s"   lib/python2.7/test/test_zipfile.pyt   test_commentsy  s.    	4	c         C   sl   t  j t d t  j ƒ   } |  j | j ƒ d | _ Wd  QXt  j t d ƒ  } |  j | j d ƒ Wd  QXd  S(   NRŒ   s   this is a commentR2   (   R+   R,   R   RT   R  R  R™   R5   (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt$   test_change_comment_in_empty_archive  s
    c      	   C   s   t  j t d t  j ƒ  } | j d d ƒ Wd  QXt  j t d t  j ƒ   } |  j | j ƒ d | _ Wd  QXt  j t d ƒ  } |  j | j d ƒ Wd  QXd  S(   NR)   s   foo.txts   O, for a Muse of Fire!RŒ   s   this is a commentR2   (	   R+   R,   R   RT   R-   R?   R  R™   R5   (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt'   test_change_comment_in_nonempty_archive¤  s    c         C   sN   |  j  | } t j t j | ƒ d d ƒ } |  j d | j ƒ  ƒ Wd QXd S(   s>   Tests that files with bad CRCs return their name from testzip.R£   R2   t   afileN(   t   zips_with_bad_crcR+   R,   R   R‘   R5   RH   (   R%   R/   t   zipdataRì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   check_testzip_with_bad_crc­  s    !c         C   s   |  j  t j ƒ d  S(   N(   R=  R+   RT   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt    test_testzip_with_bad_crc_storedµ  s    s   requires zlibc         C   s   |  j  t j ƒ d  S(   N(   R=  R+   R~   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt"   test_testzip_with_bad_crc_deflated¸  s    c         C   s#  |  j  | } t j t j | ƒ d d ƒ  } |  j t j | j d ƒ Wd QXt j t j | ƒ d d ƒ8 } | j d d ƒ  } |  j t j | j ƒ Wd QXWd QXt j t j | ƒ d d ƒZ } | j d d ƒ ? } d | _	 |  j t j ƒ  x | j d ƒ rqú WWd QXWd QXWd QXd S(   sF   Tests that files with bad CRCs raise a BadZipfile exception when read.R£   R2   R:  Ni   (
   R;  R+   R,   R   R‘   R¥   RÕ   R6   R#   t   MIN_READ_SIZE(   R%   R/   R<  Rì   t   corrupt_file(    (    s"   lib/python2.7/test/test_zipfile.pyt   check_read_with_bad_crc¼  s    !!"!	c         C   s   |  j  t j ƒ d  S(   N(   RB  R+   RT   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_with_bad_crc_storedÑ  s    c         C   s   |  j  t j ƒ d  S(   N(   RB  R+   R~   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_with_bad_crc_deflatedÔ  s    c         C   sŸ   x˜ d	 D] } | d } t  | ƒ } t j t j ƒ  d | ƒ W } | j d | ƒ | j d d ƒ , } | j | ƒ } |  j t	 | ƒ | ƒ Wd  QXWd  QXq Wd  S(
   Ni   iÿ  i   i  i @  R)   Ra   R2   (   i   iÿ  i   i  i @  (
   R   R+   R,   R   R‘   R-   R#   R6   R5   R<   (   R%   R/   t	   test_sizeRF   t   junkRì   R'   t   buf(    (    s"   lib/python2.7/test/test_zipfile.pyt   check_read_return_sizeØ  s    
c         C   s   |  j  t j ƒ d  S(   N(   RH  R+   RT   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_return_size_storedä  s    c         C   s   |  j  t j ƒ d  S(   N(   RH  R+   R~   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_return_size_deflatedç  s    c         C   sÁ   t  j t d d ƒ } Wd  QXy# t  j t d d ƒ} | j ƒ  Wn! t  j k
 rd |  j d ƒ n Xt  j t d d ƒ } Wd  QXy# t  j t d d ƒ} | j ƒ  Wn |  j d ƒ n Xd  S(   NR£   R)   R2   s+   Unable to create empty ZIP file in 'w' modeRŒ   s+   Unable to create empty ZIP file in 'a' mode(   R+   R,   R   Rë   RÕ   R  (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_empty_zipfileë  s    c         C   s8   t  t d ƒ  } Wd  QX|  j t j t j t d ƒ d  S(   NR)   R2   (   R#   R   R¥   R+   RÕ   R,   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_open_empty_fileþ  s    c      
   C   s   |  j  t t j d d ƒ d  S(   Nt	   seventiesi»  i   i    (   i»  i   i   i    i    i    (   R¥   RÙ   R+   RÇ   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_create_zipinfo_before_1980  s    	c         C   sA   d } t  j t j | ƒ d ƒ  } |  j | j ƒ  ƒ Wd QXd S(   s>   If an extra field in the header is less than 4 bytes, skip it.sn   PK     “›­@‹žÙÓ        abc   APK     “›­@‹žÙÓ                ¤    abc  PK      3   %     R2   N(   R+   R,   R   R‘   t   assertIsNoneRH   (   R%   R<  Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt#   test_zipfile_with_short_extra_field
  s    c         C   s   t  t ƒ t  t ƒ d  S(   N(   R   R   RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ     s    
(*   RÜ   RÝ   R+   RT   R~   R;  R  R  R  R  R  R!  R"  R#  R$  R&  R'  R(  R*  R+  R.  R/  R4  R7  R8  R9  R=  R>  R   RÏ   R?  RB  RC  RD  RH  RI  RJ  RK  RL  RN  RP  RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyR  ™  sJ   
	
	
											
							$													t   DecryptionTestsc           B   sf   e  Z d  Z d Z d Z d Z d d Z d „  Z d „  Z d „  Z	 d	 „  Z
 e e d
 ƒ d „  ƒ Z RS(   s   Check that ZIP decryption works. Since the library does not
    support encryption at the moment, we use a pre-generated encrypted
    ZIP file.s˜   PK    n’i.#yï?&         test.txtú gly|ú-ÅÀ=ùyà¨r³Z}Lg¼®ù|›ä‹º»)Œ°ÛlPK     n’i.#yï?&                ¶    test.txtPK      6   L     s°   PK 	  Ï}38xuª²        zeroUT	 Ö‹’GÚ‹’GUx èèÇ<MµaÎX£Y&‹{oE×Œ˜ÀPKxuª²      PK 	  Ï}38xuª²                ¤    zeroUT Ö‹’GUx  PK      ?   [     s   zipfile.py encryption tests    i   c         C   s~   t  t d ƒ  } | j |  j ƒ Wd  QXt j t d ƒ |  _ t  t d ƒ  } | j |  j ƒ Wd  QXt j t d ƒ |  _	 d  S(   NR   R2   (
   R#   R   R$   R"   R+   R,   Rt   RS   Rk   t   zip2(   R%   R'   (    (    s"   lib/python2.7/test/test_zipfile.pyR(   8  s    c         C   s8   |  j  j ƒ  t j t ƒ |  j j ƒ  t j t ƒ d  S(   N(   Rt   Rë   R«   R   R   RR  RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   @  s    c         C   s6   |  j  t |  j j d ƒ |  j  t |  j j d ƒ d  S(   Ns   test.txtt   zero(   R¥   R¦   Rt   R6   RR  (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_no_passwordF  s    c         C   sV   |  j  j d ƒ |  j t |  j  j d ƒ |  j j d ƒ |  j t |  j j d ƒ d  S(   Nt   perls   test.txtRS  (   Rt   t   setpasswordR¥   R¦   R6   RR  (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_bad_passwordL  s    s   requires zlibc         C   sb   |  j  j d ƒ |  j |  j  j d ƒ |  j ƒ |  j j d ƒ |  j |  j j d ƒ |  j ƒ d  S(   Nt   pythons   test.txtt   12345RS  (   Rt   RV  R5   R6   t   plainRR  t   plain2(   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_good_passwordR  s    (   RÜ   RÝ   t   __doc__R"   Rk   RZ  R[  R(   RÛ   RT  RW  R   RÏ   R\  (    (    (    s"   lib/python2.7/test/test_zipfile.pyRQ    s   	
				t   TestsWithRandomBinaryFilesc           B   s¡   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e e d ƒ d „  ƒ Z	 d „  Z
 d „  Z e e d ƒ d	 „  ƒ Z d
 „  Z d „  Z e e d ƒ d „  ƒ Z RS(   c         C   sn   t  d d ƒ d t  d d ƒ } d j d „  t | ƒ Dƒ ƒ |  _ t t d ƒ  } | j |  j ƒ Wd  QXd  S(   Ni   i@   i   i   RV   c         s   s1   |  ]' } t  j d  t ƒ  t d d ƒ ƒ Vq d S(   s   <fiüÿÿiè  N(   t   structt   packR   R   (   Rß   R&   (    (    s"   lib/python2.7/test/test_zipfile.pys	   <genexpr>]  s   R   (   R   R!   R   R"   R#   R   R$   (   R%   t	   datacountR'   (    (    s"   lib/python2.7/test/test_zipfile.pyR(   [  s
     c         C   s   t  t ƒ t  t ƒ d  S(   N(   R   R   RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   d  s    
c         C   sB   t  j | d | ƒ ' } | j t d ƒ | j t t ƒ Wd  QXd  S(   NR)   s   another.name(   R+   R,   R$   R   (   R%   R.   R/   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyR1   h  s    c         C   s   |  j  | | ƒ t j | d | ƒ d } | j t ƒ } |  j t | ƒ t |  j ƒ ƒ |  j | |  j ƒ |  j | j d ƒ |  j ƒ Wd  QXd  S(   NR2   s   another.name(   R1   R+   R,   R6   R   R5   R<   R"   (   R%   R.   R/   R0   t   testdata(    (    s"   lib/python2.7/test/test_zipfile.pyRR   n  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    RR   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyRU   x  s    s   requires zlibc         C   s:   x3 t  t ƒ  t j ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R   R‘   RR   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR   |  s    c         C   sV  |  j  | | ƒ t j | d | ƒ +} g  } | j t ƒ : } x0 t rr | j d ƒ } | sb Pn  | j | ƒ qC WWd  QXg  } | j d ƒ : } x0 t rÃ | j d ƒ } | s³ Pn  | j | ƒ q” WWd  QXd j | ƒ }	 |  j	 t
 |	 ƒ t
 |  j ƒ ƒ |  j	 |	 |  j ƒ d j | ƒ }
 |  j	 t
 |
 ƒ t
 |  j ƒ ƒ |  j	 |
 |  j ƒ Wd  QXd  S(   NR2   i   s   another.nameRV   (   R1   R+   R,   R#   R   RW   R6   RX   R!   R5   R<   R"   (   R%   R.   R/   R0   RY   RZ   R[   R\   R]   t	   testdata1t	   testdata2(    (    s"   lib/python2.7/test/test_zipfile.pyR^     s,    		c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R^   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR_   ž  s    c         C   s:   x3 t  t ƒ  t j ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R   R‘   R^   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR€   ¢  s    c         C   sÍ   |  j  | | ƒ t j | d | ƒ ¢ } g  } | j t ƒ C } x9 t r{ | j t d d ƒ ƒ } | sk Pn  | j | ƒ qC WWd  QXd j	 | ƒ } |  j
 t | ƒ t |  j ƒ ƒ |  j
 | |  j ƒ Wd  QXd  S(   NR2   i   i   RV   (   R1   R+   R,   R#   R   RW   R6   R   RX   R!   R5   R<   R"   (   R%   R.   R/   R0   RY   RZ   R[   Rb  (    (    s"   lib/python2.7/test/test_zipfile.pyRg   §  s    	c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    Rg   R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyRh   ¸  s    c         C   s:   x3 t  t ƒ  t j ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R   R‘   Rg   R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR   ¼  s    (   RÜ   RÝ   R(   RÛ   R1   RR   RU   R   RÏ   R   R^   R_   R€   Rg   Rh   R   (    (    (    s"   lib/python2.7/test/test_zipfile.pyR^  Z  s   					
					s   requires zlibt   TestsWithMultipleOpensc           B   sh   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   c         C   s*   d t  d ƒ |  _ d t  d ƒ |  _ d  S(   Nt   111i'  t   222(   R   t   data1Rk   (   t   cls(    (    s"   lib/python2.7/test/test_zipfile.pyt
   setUpClassÄ  s    c         C   sK   t  j | d t  j ƒ - } | j d |  j ƒ | j d |  j ƒ Wd  QXd  S(   NR)   t   onest   twos(   R+   R,   R~   R-   Rh  Rk   (   R%   R.   R0   (    (    s"   lib/python2.7/test/test_zipfile.pyR1   É  s    c         C   sÀ   |  j  t ƒ t j t d d ƒ˜ } | j d ƒ ] } | j d ƒ E } | j d ƒ } | j d ƒ } | | j ƒ  7} | | j ƒ  7} Wd  QXWd  QX|  j | | ƒ |  j | |  j ƒ Wd  QXd  S(   NR£   R2   Rk  iô  (   R1   RS   R+   R,   R#   R6   R5   Rh  (   R%   Rì   t   zopen1t   zopen2Rh  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_same_fileÏ  s     c         C   sÃ   |  j  t ƒ t j t d d ƒ› } | j d ƒ ] } | j d ƒ E } | j d ƒ } | j d ƒ } | | j ƒ  7} | | j ƒ  7} Wd  QXWd  QX|  j | |  j ƒ |  j | |  j ƒ Wd  QXd  S(   NR£   R2   Rk  Rl  iô  (	   R1   RS   R+   R,   R#   R6   R5   Rh  Rk   (   R%   Rì   Rm  Rn  Rh  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_different_fileÜ  s     c         C   sÃ   |  j  t ƒ t j t d d ƒ› } | j d ƒ ] } | j d ƒ } | j d ƒ 6 } | j d ƒ } | | j ƒ  7} | | j ƒ  7} Wd  QXWd  QX|  j | |  j ƒ |  j | |  j ƒ Wd  QXd  S(   NR£   R2   Rk  iô  Rl  (	   R1   RS   R+   R,   R#   R6   R5   Rh  Rk   (   R%   Rì   Rm  Rh  Rn  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_interleavedé  s    c         C   sæ   |  j  t ƒ d  } } z{ t j t d ƒ % } | j d ƒ } | j d ƒ } Wd  QX| j d ƒ } | j d ƒ } | | j ƒ  7} | | j ƒ  7} Wd  | r¨ | j ƒ  n  | r» | j ƒ  n  X|  j | |  j	 ƒ |  j | |  j
 ƒ d  S(   NR2   Rk  Rl  iô  (   R1   RS   RÓ   R+   R,   R#   R6   Rë   R5   Rh  Rk   (   R%   Rm  Rn  Rì   Rh  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_after_close÷  s     
c      
   C   sè   t  j t d t  j ƒ T } | j d |  j ƒ | j d |  j ƒ | j d ƒ  } | j d ƒ } Wd  QXWd  QX|  j	 | |  j d  ƒ t  j t d ƒ % } | j d ƒ } | j d ƒ } Wd  QX|  j	 | |  j ƒ |  j	 | |  j ƒ d  S(   NR)   Rk  Rl  iô  R2   (
   R+   R,   RS   R~   R-   Rh  Rk   R#   R6   R5   (   R%   Rì   Rm  Rh  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_after_write
  s    c         C   sÏ   t  j t d t  j ƒ R } | j d |  j ƒ | j d ƒ ' } | j d ƒ | j d |  j ƒ Wd  QXWd  QXt  j t d ƒ % } | j d ƒ } | j d ƒ } Wd  QX|  j	 | |  j ƒ |  j	 | |  j ƒ d  S(   NR)   Rk  iô  Rl  R2   (
   R+   R,   RS   R~   R-   Rh  R#   R6   Rk   R5   (   R%   Rì   Rm  Rh  Rk   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_after_read  s    c      
   C   s™   |  j  t ƒ t j t d d ƒC } x9 t d ƒ D]+ } | j d ƒ | j d ƒ  } Wd  QXq2 WWd  QXt t j ƒ  } |  j	 | j
 ƒ  d ƒ Wd  QXd  S(   NR£   R2   id   Rk  (   R1   RS   R+   R,   Rä   R6   R#   R«   t   devnullt
   assertLesst   fileno(   R%   Rì   R,  Rm  R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_many_opens#  s    c         C   s   t  t ƒ d  S(   N(   R   RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   /  s    (   RÜ   RÝ   t   classmethodRj  R1   Ro  Rp  Rq  Rr  Rs  Rt  Rx  RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyRe  Â  s   								t   TestWithDirectoryc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  j t ƒ d  S(   N(   R«   R  RS   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyR(   4  s    c         C   s°   t  j t d ƒ ƒ  } | j t ƒ Wd  QX|  j t j j t j j	 t d ƒ ƒ ƒ |  j t j j t j j	 t d d ƒ ƒ ƒ |  j t j j
 t j j	 t d d d ƒ ƒ ƒ d  S(   Ns
   zipdir.zipRŒ   t   bR   (   R+   R,   R   Rµ   RS   R?   R«   R¬   t   isdirR!   R  (   R%   Rì   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract_dir7  s
    (+c         C   s*   t  j t  j j t d ƒ ƒ |  j ƒ  d  S(   NRŒ   (   R«   R  R¬   R!   RS   R}  (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_bug_6050>  s    c      
   C   sý  t  j j t d ƒ } t  j | ƒ t  j | ƒ j d @} t j t	 d ƒ   } | j
 | ƒ | j d } |  j | j j d ƒ ƒ |  j | j | d >d Bƒ | j
 | d ƒ | j d } |  j | j d	 ƒ |  j | j | d >d Bƒ Wd  QXt j t	 d
 ƒ ù } | j d } |  j | j j d ƒ ƒ |  j | j | d >d Bƒ | j d } |  j | j d	 ƒ |  j | j | d >d Bƒ t  j j t d ƒ } t  j | ƒ | j | ƒ |  j t  j j t  j j | d ƒ ƒ ƒ |  j t t  j | ƒ ƒ d ƒ Wd  QXd  S(   NR,  iÿÿ  R)   i    s   /x/i   t   yi   s   y/R2   RÀ   i   (   R«   R¬   R!   RS   R  t   statt   st_modeR+   R,   R   R$   R  R?   RE   R  R5   RÈ   Rµ   R|  R<   t   listdir(   R%   t   dirpathR£   Rì   RÌ   RÀ   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_write_dirC  s0    !(c      
   C   sE  t  j t  j j t d ƒ ƒ t j t d ƒ J } | j d d ƒ | j	 d } |  j
 | j d ƒ |  j
 | j d ƒ Wd  QXt j t d ƒ ³ } | j	 d } |  j | j j d ƒ ƒ |  j
 | j d ƒ t  j j t d	 ƒ } t  j | ƒ | j | ƒ |  j t  j j t  j j | d ƒ ƒ ƒ |  j
 t  j | ƒ d g ƒ Wd  QXd  S(   NR,  R)   s   x/RV   i    iýA  i   R2   RÀ   i  ýAi ýAi  ýAi ýA(   R«   R  R¬   R!   RS   R+   R,   R   R-   R  R5   RE   RÈ   R?   R  Rµ   R|  R‚  (   R%   Rì   RÌ   RÀ   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_writestr_dir]  s    (c         C   s-   t  t ƒ t j j t ƒ r) t t ƒ n  d  S(   N(   R   RS   R«   R¬   R  R   R   (   R%   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   n  s    
(   RÜ   RÝ   R(   R}  R~  R„  R…  RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyRz  3  s   					t   UniversalNewlineTestsc           B   sõ   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 e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z e e d ƒ d „  ƒ Z d „  Z RS(   c         C   sÍ   g  t  t ƒ D] } d | ^ q |  _ d |  _ i  i  |  _ |  _ x„ t |  j ƒ D]s \ } } | j |  j ƒ | |  j | <d t | f |  j | <t	 |  j | d ƒ  } | j
 |  j | ƒ Wd  QXqR Wd  S(   Ns   Test of zipfile line %d.s   s   
s   
s   %s-%dR   (   s   s   
s   
(   R   R   R    t   sepst   arcdatat   arcfilest	   enumerateR!   R   R#   R$   (   R%   R&   t   nt   sR›   (    (    s"   lib/python2.7/test/test_zipfile.pyR(   u  s    #	c         C   sL   t  j | d | ƒ 1 } x' |  j j ƒ  D] } | j | | ƒ q( WWd  QXd  S(   NR)   (   R+   R,   R‰  t   valuesR$   (   R%   R.   R/   R0   RK   (    (    s"   lib/python2.7/test/test_zipfile.pyR1   €  s    c      
   C   s   |  j  | | ƒ t j | d ƒ e } x[ |  j j ƒ  D]J \ } } | j | d ƒ  } | j ƒ  } Wd  QX|  j |  j | | ƒ q5 WWd  QXd  S(   NR2   Ri   (	   R1   R+   R,   R‰  t   itemsR#   R6   R5   Rˆ  (   R%   R.   R/   R0   RÄ   RK   R'   R<  (    (    s"   lib/python2.7/test/test_zipfile.pyt	   read_test†  s    c   	      C   sØ   |  j  | | ƒ t j | d ƒ } x¥ |  j j ƒ  D]” \ } } | j | d ƒ ] } d } xM t r¨ | j ƒ  } | sx Pn  | | 7} | j d ƒ } | s› Pn  | | 7} q\ WWd  QX|  j	 | |  j
 d ƒ q2 W| j ƒ  d  S(   NR2   Ri   RV   i   s   
(   R1   R+   R,   R‰  RŽ  R#   RW   Ro   R6   R5   Rˆ  Rë   (	   R%   R.   R/   R0   RÄ   RK   Rl   R"   R6   (    (    s"   lib/python2.7/test/test_zipfile.pyt   readline_read_test  s     	
c   	      C   sž   |  j  | | ƒ t j | d ƒ v } xl |  j j ƒ  D][ \ } } | j | d ƒ ; } x1 |  j D]& } | j ƒ  } |  j | | d ƒ q` WWd  QXq5 WWd  QXd  S(   NR2   Ri   s   
(	   R1   R+   R,   R‰  RŽ  R#   R    Ro   R5   (	   R%   R.   R/   R0   RÄ   RK   Rl   Rm   Rq   (    (    s"   lib/python2.7/test/test_zipfile.pyt   readline_test§  s    c   
      C   s­   |  j  | | ƒ t j | d ƒ … } x{ |  j j ƒ  D]j \ } } | j | d ƒ  } | j ƒ  } Wd  QXx4 t |  j | ƒ D]  \ } }	 |  j	 |	 | d ƒ q{ Wq5 WWd  QXd  S(   NR2   Ri   s   
(
   R1   R+   R,   R‰  RŽ  R#   Rs   Rt   R    R5   (
   R%   R.   R/   R0   RÄ   RK   R'   Rv   Rm   Rw   (    (    s"   lib/python2.7/test/test_zipfile.pyt   readlines_test²  s    c   	      C   s¡   |  j  | | ƒ t j | d ƒ y } xo |  j j ƒ  D]^ \ } } | j | d ƒ > } x4 t |  j | ƒ D]  \ } } |  j | | d ƒ qi WWd  QXq5 WWd  QXd  S(   NR2   Ri   s   
(	   R1   R+   R,   R‰  RŽ  R#   Rt   R    R5   (	   R%   R.   R/   R0   RÄ   RK   R›   Rm   Rw   (    (    s"   lib/python2.7/test/test_zipfile.pyt   iterlines_test½  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R  R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_storedÇ  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R  R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyRz   Ë  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R‘  R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR{   Ð  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R’  R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR|   Ô  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R“  R+   RT   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR}   Ø  s    s   requires zlibc         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R  R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_read_deflatedÜ  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R  R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR‚   á  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R‘  R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyRƒ   ç  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R’  R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR„   ì  s    c         C   s7   x0 t  t ƒ  t ƒ  f D] } |  j | t j ƒ q Wd  S(   N(   RS   R   R    R“  R+   R~   (   R%   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyR…   ñ  s    c         C   sE   x* |  j  j ƒ  D] \ } } t j | ƒ q Wt t ƒ t t ƒ d  S(   N(   R‰  RŽ  R«   R¯   R   R   RS   (   R%   RÄ   RK   (    (    s"   lib/python2.7/test/test_zipfile.pyRÛ   ö  s    
(   RÜ   RÝ   R(   R1   R  R  R‘  R’  R“  R”  Rz   R{   R|   R}   R   RÏ   R•  R‚   Rƒ   R„   R…   RÛ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyR†  t  s$   			
				
					t   CommandLineTestc           B   sM   e  Z d  „  Z d „  Z d „  Z d „  Z e e d ƒ d „  ƒ Z d „  Z	 RS(   c         O   s:   t  j d d | | Ž \ } } } | j t j j ƒ  d ƒ S(   Ns   -mR+   s   
(   R   t   assert_python_okRj   R«   t   linesepRÆ   (   R%   t   argst   kwargst   rct   outt   err(    (    s"   lib/python2.7/test/test_zipfile.pyt
   zipfilecmdÿ  s    c         G   s   t  j d d | Œ S(   Ns   -mR+   (   R   t   assert_python_failure(   R%   R™  (    (    s"   lib/python2.7/test/test_zipfile.pyt   zipfilecmd_failure  s    c         C   so   t  d ƒ } |  j d | ƒ } |  j | j ƒ  d ƒ t  d ƒ } |  j d | ƒ \ } } } |  j | d ƒ d  S(   Ns
   zipdir.zips   -ts   Done testings   testtar.tarRV   (   R   Rž  R5   t   rstripR   (   R%   t   zip_nameRœ  R›  R  (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_test_command  s    c      	   C   s‡   t  d ƒ } t ƒ  , } t j | d ƒ  } | j ƒ  Wd  QXWd  QX| j ƒ  j d d ƒ } |  j d | d d ƒ} |  j | | ƒ d  S(   Ns
   zipdir.zipR2   t   asciit   backslashreplaces   -lt   PYTHONIOENCODINGs   ascii:backslashreplace(	   R   R   R+   R,   R9   R:   RÆ   Rž  R5   (   R%   R¢  t   tt   tft   expectedRœ  (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_list_command  s     	s   requires zlibc      
   C   sL  |  j  t t ƒ t t d ƒ  } | j d ƒ Wd  QXt j t ƒ |  j  t t ƒ t t j	 j
 t d ƒ d ƒ  } | j d ƒ Wd  QXt t g } t t d t d g } z‘ |  j d t | Œ } |  j | d ƒ t j t ƒ W } |  j | j ƒ  | ƒ |  j | j | d	 ƒ d ƒ |  j | j | d
 ƒ d ƒ Wd  QXWd  t t ƒ Xd  S(   NR)   s   test 1s   file.txts   test 2R¿   s	   /file.txts   -cRV   i    i   (   t
   addCleanupR   R   R#   R$   R«   R  t	   TESTFNDIRR   R¬   R!   Rž  RS   R5   R+   R,   RC   R6   (   R%   R.   t   filesRC   Rœ  R  (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_create_command  s"    !'c         C   s.  t  d ƒ } t } t j | ƒ zý |  j d | | ƒ } |  j | d ƒ t j | ƒ Ã } x¹ | j ƒ  D]« } t j	 j
 | | j j d t j ƒ ƒ } | j j d ƒ rÁ |  j t j	 j | ƒ ƒ qf |  j t j	 j | ƒ ƒ t | d ƒ & } |  j | j ƒ  | j | ƒ ƒ Wd  QXqf WWd  QXWd  t | ƒ Xd  S(   Ns
   zipdir.zips   -eRV   R¿   RŽ   (   R   R¬  R«   R  Rž  R5   R+   R,   RD   R¬   R!   RE   Rj   RÄ   R  R?   R|  R¸   R#   R6   R   (   R%   R¢  t   extdirRœ  R  t   ziR¬   R.   (    (    s"   lib/python2.7/test/test_zipfile.pyt   test_extract_command-  s     3(
   RÜ   RÝ   Rž  R   R£  Rª  R   RÏ   R®  R±  (    (    (    s"   lib/python2.7/test/test_zipfile.pyR–  ý  s   					c           C   s)   t  t t t t t t t t t	 t
 ƒ
 d  S(   N(   R
   R   RÞ   R  Rö   RQ  Re  Rz  R†  R^  R–  (    (    (    s"   lib/python2.7/test/test_zipfile.pyt	   test_mainA  s    	t   __main__(2   RÏ   t   ImportErrorRÓ   R«   R   R7   R@   R_  R+   t   unittestR    t   tempfileR   R   R   R   R   t   testR   t   test.test_supportR   R   R	   R
   R   R   R   R   R   RÆ   t   UnicodeErrort	   TypeErrorRS   R¬  R   R©   R   t   TestCaseR   RÞ   Rö   R  RQ  R^  Re  Rz  R†  R–  R²  RÜ   (    (    (    s"   lib/python2.7/test/test_zipfile.pyt   <module>   sZ   
@


				ÿ ÿ `»Uÿ †<hpA‰D	