ó
­«Y]c           @   s  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 Z d  d l Z d  d l Z d  d l	 m
 Z
 d  d l m Z m Z m Z m Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z m Z e d Z y" d  d l Z d  d l Z e Z Wn e k
 r'e Z n Xy d  d l Z Wn e k
 rQe  Z n Xy" d  d l! Z! d  d l Z e Z" Wn e k
 r“e
 d ƒ Z" n Xd e  j# f d	 „  ƒ  YZ$ d
 e  j# f d „  ƒ  YZ% d e  j# f d „  ƒ  YZ& d „  Z' e( d k rþe' ƒ  n  d S(   iÿÿÿÿN(   t   find_executable(   t   make_archivet   register_archive_formatt   unregister_archive_formatt   get_archive_formats(   t   test_support(   t   TESTFNt   check_warningst   captured_stdoutt   2t   zipt
   TestShutilc           B   så  e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z e j e	 e
 d ƒ d ƒ e j e j d  d	 k d
 ƒ e j e	 e
 d ƒ oŽ e
 j ƒ  d k d ƒ d „  ƒ ƒ ƒ Z d „  Z d „  Z d „  Z d „  Z e	 e
 d ƒ rî d „  Z d „  Z n  e j e	 e
 d ƒ d ƒ d „  ƒ Z e j e	 e
 d ƒ d ƒ d „  ƒ Z e j e	 e
 d ƒ ofe	 e d ƒ ofe	 e d ƒ d ƒ d „  ƒ Z e j e d ƒ d  „  ƒ Z d! „  Z d" d# „ Z e j e d$ ƒ e j e d% ƒ d& ƒ d' „  ƒ ƒ Z e j e  d( ƒ d) „  ƒ Z! e j e  d( ƒ e j e d* ƒ d+ ƒ d, „  ƒ ƒ Z" e j e  d( ƒ e j e d- ƒ d. ƒ d/ „  ƒ ƒ Z# d0 „  Z$ e j e d$ ƒ d1 „  ƒ Z% e j e d$ ƒ e j e& d2 ƒ d3 „  ƒ ƒ Z' d4 „  Z( d5 „  Z) e j e d$ ƒ d6 „  ƒ Z* d7 „  Z+ RS(8   c         C   s    t  t |  ƒ j ƒ  g  |  _ d  S(   N(   t   superR   t   setUpt   tempdirs(   t   self(    (    s!   lib/python2.7/test/test_shutil.pyR   -   s    c         C   sO   t  t |  ƒ j ƒ  x5 |  j rJ |  j j ƒ  } t j | t j d k ƒ q Wd  S(   Nt   ntt   cygwin(   R   R   (	   R   R   t   tearDownR   t   popt   shutilt   rmtreet   ost   name(   R   t   d(    (    s!   lib/python2.7/test/test_shutil.pyR   1   s    t   xxxc         C   s\   t  | t t f ƒ r* t j j | Œ  } n  t | d ƒ } z | j | ƒ Wd | j ƒ  Xd S(   sW   Writes a file in the given path.


        path can be a string or a sequence.
        t   wN(	   t
   isinstancet   listt   tupleR   t   patht   joint   opent   writet   close(   R   R   t   contentt   f(    (    s!   lib/python2.7/test/test_shutil.pyt
   write_file7   s    c         C   s    t  j ƒ  } |  j j | ƒ | S(   sj   Create a temporary directory that will be cleaned up.

        Returns the path of the directory.
        (   t   tempfilet   mkdtempR   t   append(   R   R   (    (    s!   lib/python2.7/test/test_shutil.pyR'   E   s    c         C   s&   t  j ƒ  } |  j t t j | ƒ d  S(   N(   R&   t   mktempt   assertRaisest   OSErrorR   R   (   R   t   filename(    (    s!   lib/python2.7/test/test_shutil.pyt   test_rmtree_errorsM   s    t   chmods   requires os.chmod()i   R   s2   This test can't be run on Cygwin (issue #1071513).t   geteuidi    s9   This test can't be run reliably as root (issue #1076467).c         C   sú   d |  _  t j t ƒ t j j t d ƒ |  _ t |  j d ƒ } | j ƒ  t j	 t ƒ j
 } t j	 |  j ƒ j
 } t j |  j t	 j ƒ t j t t	 j ƒ t j t d |  j ƒ|  j |  j  d d ƒ t j t | ƒ t j |  j | ƒ t j t ƒ d  S(   Ni    t   aR   t   onerrori   s1   Expected call to onerror function did not happen.(   t
   errorStateR   t   mkdirR   R   R   t	   childpathR    R"   t   statt   st_modeR.   t   S_IREADR   R   t   check_args_to_onerrort   assertEqual(   R   R$   t   old_dir_modet   old_child_mode(    (    s!   lib/python2.7/test/test_shutil.pyt   test_on_errorR   s    	
c         C   sÊ   |  j  d k r€ | t j k r4 |  j | |  j ƒ n& |  j | t j d ƒ |  j | t ƒ |  j t	 | d t
 ƒ ƒ d |  _  nF |  j | t j ƒ |  j | t ƒ |  j t	 | d t
 ƒ ƒ d |  _  d  S(   Ni    s+   func must be either os.remove or os.listdiri   i   (   R2   R   t   removeR9   R4   t   assertIst   listdirR   t
   assertTruet
   issubclassR+   t   rmdir(   R   t   funct   argt   exc(    (    s!   lib/python2.7/test/test_shutil.pyR8   o   s    c         C   sL   t  j ƒ  \ } } t j | ƒ j ƒ  |  j t t j | ƒ t j	 | ƒ d  S(   N(
   R&   t   mkstempR   t   fdopenR"   R*   R+   R   R   R=   (   R   t   handleR   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_rmtree_dont_delete_file‰   s    c      
   C   sF  d „  } d „  } t  j ƒ  } t j j t  j ƒ  d ƒ } | t j j | d ƒ d ƒ t j t j j | d ƒ ƒ | t j j | d d ƒ d ƒ zè t j | | ƒ |  j t j j	 t j j | d ƒ ƒ ƒ |  j t j j
 t j j | d ƒ ƒ ƒ |  j t j j	 t j j | d d ƒ ƒ ƒ | t j j | d ƒ ƒ } |  j | d ƒ | t j j | d d ƒ ƒ } |  j | d ƒ Wd  x~ t j j | d ƒ t j j | d ƒ t j j | d d ƒ t j j | d d ƒ f D]( } t j j | ƒ rÐt j | ƒ qÐqÐWxB | t j j | ƒ f D]( } t j j | ƒ rt j | ƒ qqWXd  S(   Nc         S   s*   t  |  d ƒ } | j | ƒ | j ƒ  d  S(   NR   (   R    R!   R"   (   R   t   dataR$   (    (    s!   lib/python2.7/test/test_shutil.pyt
   write_data‘   s    c         S   s&   t  |  ƒ } | j ƒ  } | j ƒ  | S(   N(   R    t   readR"   (   R   R$   RJ   (    (    s!   lib/python2.7/test/test_shutil.pyt	   read_data–   s    
t   destinations   test.txtt   123t   test_dirt   456(   R&   R'   R   R   R   R3   R   t   copytreeR@   t   isfilet   isdirR9   t   existsR=   t   dirnameR   (   R   RK   RM   t   src_dirt   dst_dirt   actualR   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_copytree_simple   s8    		((c   	      C   sT  d „  } d „  } t  j j } t  j j } t j ƒ  } zð| t j ƒ  d ƒ } | | | d ƒ d ƒ | | | d ƒ d ƒ t  j | | d ƒ ƒ | | | d d ƒ d ƒ t  j | | d	 ƒ ƒ | | | d	 d ƒ d ƒ t  j | | d	 d
 ƒ ƒ t  j | | d	 d ƒ ƒ | | | d	 d
 d ƒ d ƒ | | | d	 d d ƒ d ƒ z‚ t j d d	 ƒ } t j	 | | d | ƒ|  j
 | | | d ƒ ƒ ƒ |  j
 | | | d ƒ ƒ ƒ |  j
 | | | d	 ƒ ƒ ƒ Wd  t  j j | ƒ rét j | ƒ n  Xz‰ t j d d ƒ } t j	 | | d | ƒ|  j
 | | | d ƒ ƒ ƒ |  j
 | | | d	 d ƒ ƒ ƒ |  j
 | | | d	 d
 ƒ ƒ ƒ Wd  t  j j | ƒ r˜t j | ƒ n  Xzf d „  } t j	 | | d | ƒ|  j
 | | | d	 d d ƒ ƒ ƒ |  j
 | | | d	 d
 ƒ ƒ ƒ Wd  t  j j | ƒ r$t j | ƒ n  XWd  t j | ƒ t j t  j j | ƒ ƒ Xd  S(   Nc         S   s*   t  |  d ƒ } | j | ƒ | j ƒ  d  S(   NR   (   R    R!   R"   (   R   RJ   R$   (    (    s!   lib/python2.7/test/test_shutil.pyRK   ¿   s    c         S   s&   t  |  ƒ } | j ƒ  } | j ƒ  | S(   N(   R    RL   R"   (   R   R$   RJ   (    (    s!   lib/python2.7/test/test_shutil.pyRM   Ä   s    
RN   s   test.txtRO   s   test.tmpRP   RQ   t	   test_dir2t   subdirt   subdir2s   test.pys   *.tmpt   ignores   subdir*c         S   s”   g  } x‡ | D] } t  j j |  | ƒ } t  j j | ƒ r` | j ƒ  d d k r` | j | ƒ q t  j j | ƒ d d k r | j | ƒ q q W| S(   NiÿÿÿÿR\   s   .py(   R   R   R   RT   t   splitR(   t   splitext(   t   srct   namest   resR   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   _filterô   s    (   R   R   R   RU   R&   R'   R3   R   t   ignore_patternsRR   R@   R   RV   (	   R   RK   RM   R   RU   RW   RX   t   patternsRd   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_copytree_with_exclude½   sV    		! $	$t   symlinkc         C   s\  t  j t ƒ t  j j t d ƒ } t  j j t d ƒ } zø t | d ƒ } | j d ƒ | j ƒ  t  j | | ƒ |  j	 t
 j t
 j | | ƒ t | d ƒ  } |  j | j ƒ  d ƒ Wd  QXt  j | ƒ t  j d | ƒ |  j	 t
 j t
 j | | ƒ t | d ƒ  } |  j | j ƒ  d ƒ Wd  QXt  j | ƒ Wd  y t
 j t ƒ Wn t k
 rVn XXd  S(   Nt   cheeset   shopR   t   cheddart   r(   R   R3   R   R   R   R    R!   R"   t   linkR*   R   t   Errort   copyfileR9   RL   R=   Rh   R   R+   (   R   Ra   t   dstR$   (    (    s!   lib/python2.7/test/test_shutil.pyt'   test_dont_copy_file_onto_link_to_itself  s*    
c         C   s‰   t  j t ƒ za t  j j t d ƒ } t  j j t d ƒ } t  j | ƒ t  j | | ƒ |  j t t j	 | ƒ Wd  t j	 t d t
 ƒXd  S(   NRi   Rj   t   ignore_errors(   R   R3   R   R   R   Rh   R*   R+   R   R   t   True(   R   Ra   Rp   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_rmtree_on_symlink-  s    t   mkfifos   requires os.mkfifo()c         C   s^   t  j t ƒ z< |  j t j t j t t ƒ |  j t j t j t t ƒ Wd  t  j	 t ƒ Xd  S(   N(
   R   Ru   R   R*   R   t   SpecialFileErrorRo   t   TESTFN2t   __file__R=   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_copyfile_named_pipe:  s    c         C   s  t  j t ƒ zÌ t  j j t d ƒ } t  j | ƒ t  j j | d ƒ } t  j | ƒ y t j t t ƒ Wn` t j	 k
 rÊ } | j
 d } |  j t | ƒ d ƒ | d \ } } } |  j d | | ƒ n X|  j d ƒ Wd  t j t d t ƒt j t d t ƒXd  S(   NR\   t   mypipei    i   s   `%s` is a named pipes$   shutil.Error should have been raisedRr   (   R   R3   R   R   R   Ru   R   RR   Rw   Rn   t   argsR9   t   lent   failR   Rs   (   R   R\   t   pipet   et   errorsRa   Rp   t	   error_msg(    (    s!   lib/python2.7/test/test_shutil.pyt   test_copytree_named_pipeE  s     t   chflagst
   EOPNOTSUPPt   ENOTSUPs)   requires os.chflags, EOPNOTSUPP & ENOTSUPc         C   së   |  j  ƒ  } t j j | d ƒ } t j j | d ƒ } |  j | d ƒ |  j | d ƒ d „  } t j } zr x9 t j t j f D]% } | | ƒ t _ t	 j
 | | ƒ q~ W| t j t j ƒ t _ |  j t t	 j
 | | ƒ Wd  | t _ Xd  S(   Nt   file1t   file2R   c            s   t  ƒ  ‰ ‡  ‡ f d †  } | S(   Nc            s   ˆ  ˆ _  ˆ ‚ d  S(   N(   t   errno(   R   t   flags(   t   errt   ex(    s!   lib/python2.7/test/test_shutil.pyt   _chflags_raiserh  s    	(   R+   (   RŠ   RŒ   (    (   RŠ   R‹   s!   lib/python2.7/test/test_shutil.pyt   make_chflags_raisere  s    	(   R'   R   R   R   R%   Rƒ   Rˆ   R„   R…   R   t   copystatR*   R+   (   R   t   tmpdirR†   R‡   R   t   old_chflagsRŠ   (    (    s!   lib/python2.7/test/test_shutil.pyt-   test_copystat_handles_harmless_chflags_errorsZ  s    		s   requires zlibc   	      C   så  |  j  d ƒ \ } } |  j ƒ  } t j | ƒ t j j | ƒ } t j j t j j | ƒ d ƒ } t j	 | ƒ , t j j
 | ƒ } t | d | d ƒ } Wd  QX|  j | | d ƒ |  j t j j | ƒ ƒ |  j t j | ƒ ƒ t j | d ƒ 5 } |  j t | j ƒ  ƒ d d d d	 d
 d g ƒ Wd  QXt j	 | ƒ  t | d | d ƒ } Wd  QX|  j | | d ƒ |  j t j j | ƒ ƒ |  j t j | ƒ ƒ t j | d ƒ 5 } |  j t | j ƒ  ƒ d d d d	 d
 d g ƒ Wd  QXd  S(   Nt    t   archivet   gztart   .s   .tar.gzs   r:gzs   ./file1s   ./file2s   ./subs   ./sub/file3s   ./sub2t   tars   .tarRl   (   t   _create_filesR'   R   RB   R   RV   R   t   basenamet   supportt
   change_cwdt   abspathR   R9   R@   RS   t   tarfilet
   is_tarfileR    t   sortedt   getnames(	   R   t   root_dirt   base_dirt   tmpdir2t   work_dirt   rel_base_namet	   base_namet   tarballt   tf(    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_tarballw  s0    !		c         C   s<   t  j | ƒ ' } | j ƒ  } | j ƒ  t | ƒ SWd  QXd  S(   N(   Rœ   R    RŸ   t   sortR   (   R   R   R–   Rb   (    (    s!   lib/python2.7/test/test_shutil.pyt   _tarinfo›  s    
t   distc         C   sé   |  j  ƒ  } t j j | | ƒ } t j j | ƒ sC t j | ƒ n  |  j | d f d ƒ |  j | d f d ƒ t j t j j | d ƒ ƒ |  j | d d f d ƒ t j t j j | d ƒ ƒ | rß |  j | d f d ƒ n  | | f S(   NR†   R   R‡   t   subt   file3t   sub2t   outer(   R'   R   R   R   RT   t   makedirsR%   R3   (   R   R¡   R    R«   (    (    s!   lib/python2.7/test/test_shutil.pyR—   ¡  s    s   Requires zlibR–   s   Need the tar command to runc         C   sr  |  j  ƒ  \ } } t j j |  j ƒ  d ƒ } t | d | | ƒ } |  j | | d ƒ |  j t j j | ƒ ƒ t j j | d ƒ } d d d | g } t	 j
 | d | ƒ|  j t j j | ƒ ƒ |  j |  j | ƒ |  j | ƒ ƒ t | d | | ƒ } |  j | | d ƒ |  j t j j | ƒ ƒ t | d | | d	 t ƒ} |  j | | d ƒ |  j t j j | ƒ ƒ d  S(
   NR“   R”   s   .tar.gzs   archive2.tarR–   s   -cft   cwds   .tart   dry_run(   R—   R   R   R   R'   R   R9   R@   RS   t
   subprocesst
   check_callRª   Rs   (   R   R    R¡   R¥   R¦   t   tarball2t   tar_cmd(    (    s!   lib/python2.7/test/test_shutil.pyt   test_tarfile_vs_tar°  s"    "	s   Need zip support to runc   	      C   sû  |  j  ƒ  \ } } |  j ƒ  } t j | ƒ t j j | ƒ } t j j t j j | ƒ d ƒ } t j	 | ƒ ) t j j
 | ƒ } t | d | ƒ } Wd  QX|  j | | d ƒ |  j t j j | ƒ ƒ |  j t j | ƒ ƒ t j | ƒ 8 } |  j t | j ƒ  ƒ d d d d d d	 d
 g ƒ Wd  QXt j | ƒ t j	 | ƒ , t j j
 | ƒ } t | d | | ƒ } Wd  QX|  j | | d ƒ |  j t j j | ƒ ƒ |  j t j | ƒ ƒ t j | ƒ 5 } |  j t | j ƒ  ƒ d d d d d d	 g ƒ Wd  QXd  S(   NR“   R
   s   .zips   dist/s
   dist/file1s
   dist/file2s	   dist/sub/s   dist/sub/file3s
   dist/sub2/R¯   (   R—   R'   R   RB   R   RV   R   R˜   R™   Rš   R›   R   R9   R@   RS   t   zipfilet
   is_zipfilet   ZipFileRž   t   namelistt   unlink(	   R   R    R¡   R¢   R£   R¤   R¥   Rc   t   zf(    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_zipfileÐ  s6    !			R
   s   Need the zip command to runc   
      C   s-  |  j  ƒ  \ } } t j j |  j ƒ  d ƒ } t | d | | ƒ } |  j | | d ƒ |  j t j j | ƒ ƒ t j j | d ƒ } d d d d | g } t	 j
 | d | ƒ|  j t j j | ƒ ƒ t j | ƒ  } | j ƒ  } Wd  QXt j | ƒ  } | j ƒ  }	 Wd  QX|  j t | ƒ t |	 ƒ ƒ d  S(   NR“   R
   s   .zips   archive2.zips   -qs   -rR±   (   R—   R   R   R   R'   R   R9   R@   RS   R³   R´   R¸   Rº   R»   Rž   (
   R   R    R¡   R¥   R“   t   archive2t   zip_cmdR½   Rb   t   names2(    (    s!   lib/python2.7/test/test_shutil.pyt   test_zipfile_vs_zipö  s    t   unzips   Need the unzip command to runc   	   	   C   s  |  j  ƒ  \ } } t j j |  j ƒ  d ƒ } t | d | | ƒ } |  j | | d ƒ |  j t j j | ƒ ƒ d d | g } t	 j
 | ƒ | y t j | d t j ƒWnZ t j k
 r} | j } d | k râ |  j d ƒ n  d	 } |  j | j | | ƒ ƒ n XWd  QXd  S(
   NR“   R
   s   .zipRÃ   s   -tt   stderrs   unrecognized option: ts   unzip doesn't support -ts   {}

**Unzip Output**
{}(   R—   R   R   R   R'   R   R9   R@   RS   R™   Rš   R³   t   check_outputt   STDOUTt   CalledProcessErrort   outputt   skipTestR}   t   format(	   R   R    R¡   R¥   R“   RÀ   RE   t   detailst   msg(    (    s!   lib/python2.7/test/test_shutil.pyt   test_unzip_zipfile  s    	c         C   s;   |  j  ƒ  } t j j | d ƒ } |  j t t | d ƒ d  S(   NR“   R   (   R'   R   R   R   R*   t
   ValueErrorR   (   R   R   R¥   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_archive'  s    c      	   C   sF  t  r/ t j d ƒ d } t j d ƒ d } n
 d } } |  j ƒ  \ } } t j j |  j	 ƒ  d ƒ } t
 | d | | d | d | ƒ} |  j t j j | ƒ ƒ t
 | d | | ƒ } |  j t j j | ƒ ƒ t
 | d | | d | d | ƒ} |  j t j j | ƒ ƒ t
 | d | | d d d d	 ƒ} |  j t j j | ƒ ƒ d  S(
   Ni    t   rootR“   R
   t   ownert   groupR–   t	   kjhkjhkjgt   oihohoh(   t   UID_GID_SUPPORTt   grpt   getgrgidt   pwdt   getpwuidR—   R   R   R   R'   R   R@   RS   (   R   RÒ   RÑ   R    R¡   R¥   Rc   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_archive_owner_group,  s"    
	s   Requires grp and pwd supportc   	      C   s  |  j  ƒ  \ } } t j j |  j ƒ  d ƒ } t j d ƒ d } t j d ƒ d } t	 j
 | ƒ & t | d | d d | d | ƒ} Wd  QX|  j t j j | ƒ ƒ t j | ƒ } zA x: | j ƒ  D], } |  j | j d ƒ |  j | j d ƒ qÂ WWd  | j ƒ  Xd  S(   NR“   i    R”   R«   RÑ   RÒ   (   R—   R   R   R   R'   RÖ   R×   RØ   RÙ   R™   Rš   R   R@   RS   Rœ   R    t
   getmembersR9   t   uidt   gidR"   (	   R   R    R¡   R¥   RÒ   RÑ   t   archive_nameR“   t   member(    (    s!   lib/python2.7/test/test_shutil.pyt   test_tarfile_root_ownerG  s    c         C   s…   t  j ƒ  } d „  } t d | g  d ƒ zK y t d d d |  j ƒ  ƒWn t k
 r[ n X|  j t  j ƒ  | ƒ Wd  t d ƒ Xd  S(   Nc          _   s   t  ƒ  ‚ d  S(   N(   t   RuntimeError(   R{   t   kw(    (    s!   lib/python2.7/test/test_shutil.pyt   _breaks`  s    R   s   xxx fileR    (   R   t   getcwdR   R   R'   t	   ExceptionR9   R   (   R   t   current_dirRã   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_archive_cwd^  s    	c         C   sp   |  j  ƒ  } t j ƒ  } zC t j | ƒ |  j t d d ƒ d ƒ |  j t j j d ƒ ƒ Wd  t j | ƒ Xd  S(   Nt   testR–   s   test.tar(	   R'   R   Rä   t   chdirR9   R   R@   R   RS   (   R   R    t	   saved_dir(    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_tarfile_in_curdirm  s    c         C   sp   |  j  ƒ  } t j ƒ  } zC t j | ƒ |  j t d d ƒ d ƒ |  j t j j d ƒ ƒ Wd  t j | ƒ Xd  S(   NRè   R
   s   test.zip(	   R'   R   Rä   Ré   R9   R   R@   R   RS   (   R   R    Rê   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_make_zipfile_in_curdirx  s    c      	   C   sß   |  j  t t d d ƒ |  j  t t d d „  d ƒ |  j  t t d d „  d	 d
 g ƒ t d d „  d g d ƒ g  t ƒ  D] \ } } | ^ qw } |  j d | ƒ t d ƒ g  t ƒ  D] \ } } | ^ q³ } |  j d | ƒ d  S(   NR   i   c           S   s   t  S(   N(   t   x(    (    (    s!   lib/python2.7/test/test_shutil.pyt   <lambda>‡  R’   c           S   s   t  S(   N(   Rí   (    (    (    s!   lib/python2.7/test/test_shutil.pyRî   ‰  R’   i   i   c           S   s   t  S(   N(   Rí   (    (    (    s!   lib/python2.7/test/test_shutil.pyRî   Œ  R’   s   xxx file(   i   i   (   i   i   i   (   i   i   (   R*   t	   TypeErrorR   R   t   assertInR   t   assertNotIn(   R   R   t   paramst   formats(    (    s!   lib/python2.7/test/test_shutil.pyt   test_register_archive_format„  s    "
"(,   t   __name__t
   __module__R   R   R%   R'   R-   t   unittestt
   skipUnlesst   hasattrR   t   skipIft   syst   platformR/   R<   R8   RI   RZ   Rg   Rq   Rt   Ry   R‚   Rˆ   R‘   t   zlibR¨   Rª   R—   R    R·   t   ZIP_SUPPORTR¾   RÂ   RÍ   RÏ   RÚ   RÕ   Rà   Rç   Rë   Rì   Rô   (    (    (    s!   lib/python2.7/test/test_shutil.pyR   +   sX   				$			-	Q	$$$	&			t   TestMovec           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 d „  Z e j e j j d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sã   d } t  j ƒ  |  _ t  j ƒ  |  _ t j j |  j | ƒ |  _ t j j |  j | ƒ |  _ y@ t  j d t j j	 t
 ƒ ƒ |  _ t j j |  j | ƒ |  _ Wn t k
 r¶ d  |  _ n Xt |  j d ƒ  } | j d ƒ Wd  QXd  S(   Nt   foot   dirt   wbt   spam(   R&   R'   RW   RX   R   R   R   t   src_filet   dst_fileRV   Rx   t   dir_other_fst   file_other_fsR+   t   NoneR    R!   (   R   R,   R$   (    (    s!   lib/python2.7/test/test_shutil.pyR   —  s    	c         C   sK   xD |  j  |  j |  j f D]* } y | r8 t j | ƒ n  Wq q Xq Wd  S(   N(   RW   RX   R  R   R   (   R   R   (    (    s!   lib/python2.7/test/test_shutil.pyR   ©  s    c         C   s   t  | d ƒ  } | j ƒ  } Wd  QXt j | | ƒ t  | d ƒ  } |  j | | j ƒ  ƒ Wd  QX|  j t j j | ƒ ƒ d  S(   Nt   rb(	   R    RL   R   t   moveR9   t   assertFalseR   R   RU   (   R   Ra   Rp   t   real_dstR$   t   contents(    (    s!   lib/python2.7/test/test_shutil.pyt   _check_move_file±  s    c         C   sa   t  t j | ƒ ƒ } t j | | ƒ |  j | t  t j | ƒ ƒ ƒ |  j t j j | ƒ ƒ d  S(   N(	   Rž   R   R?   R   R
  R9   R  R   RU   (   R   Ra   Rp   R  R  (    (    s!   lib/python2.7/test/test_shutil.pyt   _check_move_dir¹  s    c         C   s    |  j  |  j |  j |  j ƒ d  S(   N(   R  R  R  (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_file¿  s    c         C   s    |  j  |  j |  j |  j ƒ d  S(   N(   R  R  RX   R  (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_file_to_dirÃ  s    c         C   s9   |  j  s |  j d ƒ n  |  j |  j |  j |  j ƒ d  S(   Ns%   dir on other filesystem not available(   R  RÉ   R  R  R  (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_file_other_fsÇ  s    	c         C   s9   |  j  s |  j d ƒ n  |  j |  j |  j  |  j ƒ d  S(   Ns%   dir on other filesystem not available(   R  RÉ   R  R  R  (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_file_to_dir_other_fsÎ  s    	c         C   sI   t  j ƒ  } z |  j |  j | | ƒ Wd  y t j | ƒ Wn n XXd  S(   N(   R&   R)   R  RW   R   R   (   R   RX   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dirÕ  s    c         C   sk   |  j  s |  j d ƒ n  t j d |  j  ƒ } z |  j |  j | | ƒ Wd  y t j | ƒ Wn n XXd  S(   Ns%   dir on other filesystem not availableR  (   R  RÉ   R&   R)   R  RW   R   R   (   R   RX   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_other_fsà  s    	c         C   s>   |  j  |  j |  j t j j |  j t j j |  j ƒ ƒ ƒ d  S(   N(   R  RW   RX   R   R   R   R˜   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_to_dirí  s    c         C   sW   |  j  s |  j d ƒ n  |  j |  j |  j  t j j |  j  t j j |  j ƒ ƒ ƒ d  S(   Ns%   dir on other filesystem not available(   R  RÉ   R  RW   R   R   R   R˜   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_to_dir_other_fsò  s    	c         C   sH   |  j  |  j t j j |  j t j j |  j t j j |  j ƒ ƒ ƒ d  S(   N(   R  RW   R   R   t   sepRX   R   R˜   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_sep_to_dirù  s    s   requires os.path.altsepc         C   sH   |  j  |  j t j j |  j t j j |  j t j j |  j ƒ ƒ ƒ d  S(   N(   R  RW   R   R   t   altsepRX   R   R˜   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_altsep_to_dirý  s    c         C   s?   t  |  j d ƒ  Wd  QX|  j t j t j |  j |  j ƒ d  S(   NR  (   R    R  R*   R   Rn   R
  R  RX   (   R   (    (    s!   lib/python2.7/test/test_shutil.pyt"   test_existing_file_inside_dest_dir  s    c         C   s;   t  j j |  j d ƒ } |  j t j t j |  j | ƒ d  S(   Nt   bar(   R   R   R   RW   R*   R   Rn   R
  (   R   Rp   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_dont_move_dir_in_itself  s    c         C   s™   t  j t ƒ zq xj d g D]_ \ } } t  j j t | ƒ } t  j j t | ƒ } |  j t j | | ƒ d d | | f ƒq WWd  t j t d t	 ƒXd  S(   Nt   srcdirs   srcdir/destRÌ   s?   _destinsrc() wrongly concluded that dst (%s) is not in src (%s)Rr   (   R  s   srcdir/dest(
   R   R3   R   R   R   R@   R   t
   _destinsrcR   Rs   (   R   Ra   Rp   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_destinsrc_false_negative  s    c         C   sœ   t  j t ƒ zt xm d d g D]_ \ } } t  j j t | ƒ } t  j j t | ƒ } |  j t j | | ƒ d d | | f ƒq WWd  t j t d t	 ƒXd  S(	   NR  s   src/dests
   srcdir.newRÌ   s;   _destinsrc() wrongly concluded that dst (%s) is in src (%s)Rr   (   R  s   src/dest(   R  s
   srcdir.new(
   R   R3   R   R   R   R  R   R   R   Rs   (   R   Ra   Rp   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_destinsrc_false_positive  s    (   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_shutil.pyRÿ   •  s$   													!			t   TestCopyFilec           B   sc   e  Z e Z d  e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(	   t   Fauxc           B   sD   e  Z e Z d Z e Z e e d  „ Z d „  Z	 d „  Z
 d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   _raise_in_exitt   _suppress_at_exit(   R   t   raise_in_exitt   suppress_at_exit(    (    s!   lib/python2.7/test/test_shutil.pyt   __init__.  s    	c         G   s   d S(   NR’   (    (   R   R{   (    (    s!   lib/python2.7/test/test_shutil.pyRL   1  s    c         C   s   t  |  _ d  S(   N(   Rs   t   _entered(   R   (    (    s!   lib/python2.7/test/test_shutil.pyt	   __enter__3  s    c         C   s:   | | | f |  _  |  j r3 t |  _ t d ƒ ‚ n  |  j S(   Ns   Cannot close(   t   _exited_withR%  Rs   t   _raisedt   IOErrorR&  (   R   t   exc_typet   exc_valt   exc_tb(    (    s!   lib/python2.7/test/test_shutil.pyt   __exit__5  s
    		N(   Rõ   Rö   t   FalseR*  R  R,  R-  Rs   R)  RL   R+  R2  (    (    (    s!   lib/python2.7/test/test_shutil.pyR$  *  s   		c         C   s   |  j  r t ` n  d  S(   N(   t   _deleteR   R    (   R   (    (    s!   lib/python2.7/test/test_shutil.pyR   <  s    	c         C   s   | t  _ t |  _ d  S(   N(   R   R    Rs   R4  (   R   RC   (    (    s!   lib/python2.7/test/test_shutil.pyt   _set_shutil_open@  s    	c         C   s6   d d „ } |  j  | ƒ |  j t t j d d ƒ d  S(   NRl   c         S   s+   |  d k r t  d ƒ ‚ n  d s' t ‚ d  S(   Nt   srcfiles   Cannot open "srcfile"i    (   R.  t   AssertionError(   R,   t   mode(    (    s!   lib/python2.7/test/test_shutil.pyt   _openE  s    R6  t   destfile(   R5  R*   R.  R   Ro   (   R   R9  (    (    s!   lib/python2.7/test/test_shutil.pyt   test_w_source_open_failsD  s    c            sƒ   |  j  ƒ  ‰  d ‡  f d † } |  j | ƒ t j d d ƒ |  j ˆ  j ƒ |  j ˆ  j d t k ƒ |  j ˆ  j d j	 d ƒ d  S(	   NRl   c            s;   |  d k r ˆ  S|  d k r+ t  d ƒ ‚ n  d s7 t ‚ d  S(   NR6  R:  s   Cannot open "destfile"i    (   R.  R7  (   R,   R8  (   R6  (    s!   lib/python2.7/test/test_shutil.pyR9  R  s
    R6  R:  i    i   s   Cannot open "destfile"(   s   Cannot open "destfile"(
   R$  R5  R   Ro   R@   R*  R,  R.  R9   R{   (   R   R9  (    (   R6  s!   lib/python2.7/test/test_shutil.pyt   test_w_dest_open_failsN  s    c            sµ   |  j  ƒ  ‰ |  j  t ƒ ‰  d ‡  ‡ f d † } |  j | ƒ t j d d ƒ |  j ˆ j ƒ |  j ˆ  j ƒ |  j ˆ  j ƒ |  j ˆ j d t	 k ƒ |  j
 ˆ j d j d ƒ d  S(	   NRl   c            s0   |  d k r ˆ S|  d k r  ˆ  Sd s, t  ‚ d  S(   NR6  R:  i    (   R7  (   R,   R8  (   R:  R6  (    s!   lib/python2.7/test/test_shutil.pyR9  f  s
    R6  R:  i    i   s   Cannot close(   s   Cannot close(   R$  Rs   R5  R   Ro   R@   R*  R-  R,  R.  R9   R{   (   R   R9  (    (   R:  R6  s!   lib/python2.7/test/test_shutil.pyt   test_w_dest_close_failsa  s    c            s´   |  j  t ƒ ‰ |  j  ƒ  ‰  d ‡  ‡ f d † } |  j | ƒ |  j t t j d d ƒ |  j ˆ j ƒ |  j ˆ  j ƒ |  j	 ˆ  j
 ƒ |  j ˆ j d d  k ƒ |  j ˆ j
 ƒ d  S(   NRl   c            s0   |  d k r ˆ S|  d k r  ˆ  Sd s, t  ‚ d  S(   NR6  R:  i    (   R7  (   R,   R8  (   R:  R6  (    s!   lib/python2.7/test/test_shutil.pyR9  |  s
    R6  R:  i    (   R$  Rs   R5  R*   R.  R   Ro   R@   R*  R  R-  R,  R  (   R   R9  (    (   R:  R6  s!   lib/python2.7/test/test_shutil.pyt   test_w_source_close_failsw  s    	c         C   sµ   t  j ƒ  |  _ t j j t j j |  j ƒ t j j |  j ƒ j ƒ  ƒ } |  j	 |  j | ƒ z0 t
 j |  j | ƒ |  j t j j | ƒ ƒ Wd  t j j | ƒ r° t j | ƒ n  Xd  S(   N(   R&   R'   RW   R   R   R   RV   R˜   t   uppert   assertNotEqualR   R
  R@   RT   RU   RB   (   R   RX   (    (    s!   lib/python2.7/test/test_shutil.pyt   test_move_dir_caseinsensitive  s    	(   Rõ   Rö   R3  R4  t   objectR$  R   R5  R;  R<  R=  R>  RA  (    (    (    s!   lib/python2.7/test/test_shutil.pyR#  &  s   			
			c           C   s   t  j t t t ƒ d  S(   N(   R™   t   run_unittestR   Rÿ   R#  (    (    (    s!   lib/python2.7/test/test_shutil.pyt	   test_main   s    t   __main__()   R÷   R   R&   Rû   R5   R   t   os.pathRˆ   R³   t   distutils.spawnR    R   R   R   R   Rœ   t   warningsRè   R   R™   t   test.test_supportR   R   R   Rw   RÖ   RØ   Rs   RÕ   t   ImportErrorR3  Rý   R  R¸   Rþ   t   TestCaseR   Rÿ   R#  RD  Rõ   (    (    (    s!   lib/python2.7/test/test_shutil.pyt   <module>   sN   "




ÿ ÿ l‘z	