ó
]c           @   sŮ   d  Z  d d l Z d d l Z d d l 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 e j e e d  d  Z d	 e j e j f d
     YZ d   Z e d k rŐ e e    n  d S(   s   Tests for distutils.file_util.i˙˙˙˙N(   t	   move_filet
   write_filet	   copy_file(   t   log(   t   support(   t   run_unittestt   links   test requires os.link()t   FileUtilTestCasec           B   s\   e  Z d    Z d   Z d   Z d   Z d   Z d   Z e d    Z	 e d    Z
 RS(   c         G   s=   t  |  d k r) |  j j | |  n |  j j |  d  S(   Ni    (   t   lent   _logst   append(   t   selft   msgt   args(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   _log   s    c         C   s   t  t |   j   g  |  _ t j |  _ |  j t _ |  j   } t	 j
 j | d  |  _ t	 j
 j | d  |  _ t	 j
 j | d  |  _ d  S(   Nt   f1t   f2t   d1(   t   superR   t   setUpR	   R   t   infot   old_logR   t   mkdtempt   ost   patht   joint   sourcet   targett
   target_dir(   R   t   tmp_dir(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyR      s    	c         C   s#   |  j  t _ t t |   j   d  S(   N(   R   R   R   R   R   t   tearDown(   R   (    (    s/   lib/python2.7/distutils/tests/test_file_util.pyR   "   s    c         C   s<  t  |  j d  } z | j d  Wd  | j   Xt |  j |  j d d g  } |  j |  j |  t |  j |  j d d t |  j |  j d d d |  j |  j f g } |  j |  j |  t |  j |  j d d g  |  _ t j	 |  j
  t |  j |  j
 d d d |  j |  j
 f g } |  j |  j |  d  S(   Nt   ws   some contentt   verbosei    i   s   moving %s -> %s(   t   openR   t   writet   closeR    R   t   assertEqualR	   R   t   mkdirR   (   R   t   ft   wanted(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   test_move_file_verbosity&   s"    	c         C   s|   d d d g } |  j    } t j j | d  } t | |  g  t |  j   D] } | j   ^ qP } |  j | |  d  S(   Nt   at   bt   ct   foo(	   R   R   R   R   R   R!   t	   readlinest   stripR$   (   R   t   linest   dirR,   t   linet   content(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   test_write_fileB   s    +c         C   ss   |  j    } t j j | d  } t | d  |  j    } t | |  |  j t j j t j j | d    d  S(   NR,   R2   (   R   R   R   R   R   R   t
   assertTruet   exists(   R   t   src_dirR,   t   dst_dir(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   test_copy_fileJ   s    c         C   sö   t  |  j d   } | j d  Wd  QXt j |  j  } t |  j |  j d d t j |  j  } t j |  j  } |  j t j j	 | |  | | f  |  j t j j	 | |  | | f  t  |  j d   } |  j
 | j   d  Wd  QXd  S(   NR   s   some contentR   t   hardt   r(   R!   R   R"   R   t   statR   R   R4   R   t   samestatR$   t   read(   R   R&   t   stt   st2t   st3(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   test_copy_file_hard_linkR   s    %%c      	   C   s<  t  |  j d   } | j d  Wd  QXt j |  j  } d   } t j } | t _ z t |  j |  j d d Wd  | t _ Xt j |  j  } t j |  j  } |  j t j	 j
 | |  | | f  |  j t j	 j
 | |  | | f  xH |  j |  j f D]4 } t  | d   } |  j | j   d  Wd  QXq Wd  S(   NR   s   some contentc          W   s   t  d d   d  S(   Ni    s   linking unsupported(   t   OSError(   R   (    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   _os_linkg   s    R   R9   R:   (   R!   R   R"   R   R;   R   R   R   R4   R   R<   t   assertFalseR$   R=   (   R   R&   R>   RC   t   old_linkR?   R@   t   fn(    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt    test_copy_file_hard_link_failure_   s     			
%%(   t   __name__t
   __module__R   R   R   R(   R3   R8   t   requires_os_linkRA   RG   (    (    (    s/   lib/python2.7/distutils/tests/test_file_util.pyR      s   		
				c           C   s   t  j t  S(   N(   t   unittestt	   makeSuiteR   (    (    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt
   test_suitex   s    t   __main__(   t   __doc__RK   R   t   shutilt   distutils.file_utilR    R   R   t	   distutilsR   t   distutils.testsR   t   test.test_supportR   t
   skipUnlesst   hasattrRJ   t   TempdirManagert   TestCaseR   RM   RH   (    (    (    s/   lib/python2.7/distutils/tests/test_file_util.pyt   <module>   s   	h	