mς
­fIc           @   s   d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d k l Z d k	 l
 Z
 d e  i f d     YZ d   Z e d j o e   n d  S(   N(   s   test_support(   s   TESTFNt
   TestShutilc           B   s   t  Z d   Z e e d  oE e i d  d j o1 e e d  o e i   d j o d   Z n d   Z	 d	   Z
 d
   Z e e d  o d   Z n RS(   Nc         C   s&   t  i   } |  i t t i |  d  S(   N(   t   tempfilet   mktempt   filenamet   selft   assertRaisest   OSErrort   shutilt   rmtree(   R   R   (    (    t-   /mit/python/lib/python2.4/test/test_shutil.pyt   test_rmtree_errors   s    t   chmodi   t   cygwint   geteuidi    c         C   sχ   d |  _ t i t  t i i t d  |  _ t |  i d  } | i
   t i t  i } t i |  i  i } t i |  i t i  t i t t i  t i t d |  i |  i |  i d  t i t |  t i |  i |  t i t  d  S(   Ni    t   at   wt   onerrori   (   R   t
   errorStatet   ost   mkdirt   TESTFNt   patht   joint	   childpatht   opent   ft   closet   statt   st_modet   old_dir_modet   old_child_modeR   t   S_IREADR   R   t   check_args_to_onerrort   assertEqual(   R   R   R   R   (    (    R	   t   test_on_error   s    	
c         C   s   |  i d j oG |  i | t i  |  i | |  i  |  i | d t	  d |  _ nA |  i | t i
  |  i | t  |  i | d t	  d |  _ d  S(   Ni    i   i   (   R   R   R!   t   funcR   t   removet   argR   t   excR   t   rmdirR   (   R   R#   R%   R&   (    (    R	   R    ,   s    c         C   sL   t  i   \ } } t i |  i   |  i t	 t
 i |  t i |  d  S(   N(   R   t   mkstempt   handleR   R   t   fdopenR   R   R   R   R   R   R$   (   R   R)   R   (    (    R	   t   test_rmtree_dont_delete_file8   s    c         C   sd   t  i   } z5 t i i | d  } |  i t	 i
 t	 i | |  Wd  y t i |  Wn n XXd  S(   Nt   foo(   R   t   mkdtempt   src_dirR   R   R   t   dstR   R   R   t   Errort   moveR'   (   R   R.   R/   (    (    R	   t   test_dont_move_dir_in_itself?   s      t   symlinkc         C   s@  t  i t  t  i i t d  } t  i i t d  } zΪ t | d  } | i	 d  | i
   t  i | |  |  i t i t i | |  |  i t | d  i   d  t  i |  t  i d |  |  i t i t i | |  |  i t | d  i   d  t  i |  Wd  y t i t  Wn t j
 o n XXd  S(   Nt   cheeset   shopR   t   cheddart   r(   R   R   R   R   R   t   srcR/   R   R   t   writeR   t   linkR   R   R   R0   t   copyfileR!   t   readR$   R3   R   R   (   R   R8   R   R/   (    (    R	   t'   test_dont_copy_file_onto_link_to_itselfK   s(    
 (   t   __name__t
   __module__R
   t   hasattrR   t   syst   platformR   R"   R    R+   R2   R=   (    (    (    R	   R       s   	H			c           C   s   t  i t  d  S(   N(   t   test_supportt   run_unittestR    (    (    (    R	   t	   test_maing   s    t   __main__(   t   unittestR   R   RA   R   R   t   os.patht   testRC   t   test.test_supportR   t   TestCaseR    RE   R>   (
   RC   R   R    R   RG   RA   RE   R   R   R   (    (    R	   t   ?   s   							Z	