mò
­fIc           @   s—  d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d k l Z l Z l	 Z	 d k l
 Z
 l Z y e	 i e
 ƒ Z Wn% e e f j
 o e d ƒ ‚ n Xe i e
 ƒ e	 j ow d  k Z yB e d e i ƒ  ƒ Z	 e	 i e
 ƒ Z d e j o e d ‚ n Wq*e e f j
 o e d ƒ ‚ q*Xn e i e
 ƒ e	 j o e d ƒ ‚ n d	 „  Z d
 e i f d „  ƒ  YZ d „  Z e d j o e ƒ  n d  S(   N(   s	   run_suites   TestSkippeds   TESTFN_UNICODE(   s   TESTFN_ENCODINGs   TESTFN_UNICODE_UNENCODEABLEs1   No Unicode filesystem semantics on this platform.s   @test-àòt   ?s   mbcs encoding problems!   Cannot find a suiteable filename.s    Cannot find a suitable filename.c         C   s(   t  i i |  ƒ o t  i |  ƒ n d  S(   N(   t   ost   patht   existst   filenamet   unlink(   R   (    (    t3   /mit/python/lib/python2.4/test/test_unicode_file.pyt   remove_if_exists"   s    t   TestUnicodeFilesc           B   sY   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 RS(
   Nc         C   s?  |  i t i i | ƒ ƒ |  i t i i | ƒ ƒ |  i t i | t i ƒ ƒ |  i t i i t i i	 | ƒ ƒ ƒ |  i t i i t i i	 | ƒ ƒ ƒ |  i t i t i i	 | ƒ t i ƒ ƒ t i
 | d ƒ t i | d  ƒ t i | t i ƒ  t i ƒ  f ƒ |  i | | ƒ |  i t i i	 | ƒ t i i	 t i | ƒ d ƒ j ƒ t i i t i i	 | ƒ ƒ \ } } t | t ƒ o | i t ƒ } n t i | ƒ } | oB t | d t ƒ o. g  } | D] } | | i t ƒ qÆ~ } n t i d | ƒ } g  } | D] } | t i d | ƒ q~ } |  i | | j ƒ d  S(   Niÿ  i    t   NFD(   t   selft
   failUnlessR   R   R   R   t   isfilet   accesst   R_OKt   abspatht   chmodt   utimet   Nonet   timet   _do_copyisht   globt   splitt   baset
   isinstancet   strt   decodet   TESTFN_ENCODINGt   listdirt	   file_listt   _[1]t   ft   unicodedatat	   normalize(   R
   R   R   R   R   R   R   (    (    R   t
   _do_single,   s(    %%("8$.-c         C   sz   |  i t | ƒ t | ƒ j d ƒ |  i t i | ƒ t i | ƒ ƒ |  i t i | ƒ t i | ƒ ƒ |  i	 | | ƒ d  S(   Ns7   No point checking equivalent filenames of the same type(
   R
   R   t   typet	   filename1t	   filename2t   failUnlessEqualR   t   statt   lstatR   (   R
   R$   R%   (    (    R   t   _do_equivilentN   s    c         C   sD  |  i t i i | ƒ ƒ t i | | d ƒ |  i t i i | d ƒ ƒ t i | d | ƒ |  i t i i | ƒ ƒ y | | j Wn t j
 o n§ Xt	 i
 | | d ƒ t i | d ƒ t	 i | | d ƒ |  i t i i | ƒ ƒ t	 i | d | ƒ |  i t i i | ƒ ƒ t	 i | | d ƒ t i | d ƒ d  S(   Ns   .new(   R
   R   R   R   R   R$   t   renameR%   t   UnicodeDecodeErrort   shutilt   copyR   t   moveR   t   copy2(   R
   R$   R%   (    (    R   R   ]   s"    c         C   sù   t  i ƒ  } t  i i | ƒ o t  i | ƒ n t  i | ƒ z§ t  i | ƒ z… | p t  i ƒ  } | } n% t  i ƒ  i t ƒ } | i t ƒ } t i d | ƒ } t i d | ƒ } |  i t  i i | ƒ | ƒ Wd  t  i | ƒ XWd  t  i | ƒ Xd  S(   NR	   (   R   t   getcwdt   cwdR   t   isdirt	   make_namet   rmdirt   mkdirt   chdirt
   chdir_namet   encodedt   getcwdut
   cwd_resultt   name_resultR   R   R    R!   R
   R&   t   basename(   R
   R3   R7   R8   R;   R1   R:   (    (    R   t   _do_directory   s&    
   c         C   s§   t  | ƒ t | d ƒ } | i ƒ  z |  i | ƒ Wd  t i | ƒ X|  i	 t i
 i | ƒ ƒ t i | t i ƒ } t i | ƒ z |  i | ƒ Wd  t i | ƒ Xd  S(   Nt   w(   R   R   t   fileR   t   closeR
   R"   R   R   R   R   R   t   opent   O_CREAT(   R
   R   R   (    (    R   t   _test_single™   s    

  c         C   sf   t  | ƒ |  i t i i | ƒ ƒ t | d ƒ } | i
 ƒ  z |  i | | ƒ Wd  t i | ƒ Xd  S(   NR>   (   R   R$   R
   R   R   R   R   R%   R?   R   R@   R)   R   (   R
   R$   R%   R   (    (    R   t   _test_equivalentª   s    

 c         C   s<   |  i t ƒ |  i t ƒ t d  j	 o |  i t ƒ n d  S(   N(   R
   RC   t   TESTFN_ENCODEDt   TESTFN_UNICODEt   TESTFN_UNICODE_UNENCODEABLER   (   R
   (    (    R   t   test_single_files¶   s    c         C   s$   |  i t t ƒ |  i t t ƒ d  S(   N(   R
   RD   RE   RF   (   R
   (    (    R   t   test_equivalent_files¼   s    c         C   s¢   d } |  i t | t | t ƒ |  i t | t | t ƒ |  i t | t | t ƒ |  i t | t | t ƒ t d  j	 o |  i t | t | t ƒ n d  S(   Ns   .dir(	   t   extR
   R=   RE   t   TrueRF   t   FalseRG   R   (   R
   RJ   (    (    R   t   test_directoriesÀ   s    (   t   __name__t
   __module__R"   R)   R   R=   RC   RD   RH   RI   RM   (    (    (    R   R   &   s   	"		"					c          C   s0   t  i ƒ  }  |  i t  i t ƒ ƒ t |  ƒ d  S(   N(   t   unittestt	   TestSuitet   suitet   addTestt	   makeSuiteR   t	   run_suite(   RR   (    (    R   t	   test_mainÏ   s    t   __main__(   R   R   R   R,   R    RP   t   test.test_supportRU   t   TestSkippedRF   R   RG   t   encodeRE   t   UnicodeErrort	   TypeErrorR   t   syst   unicodet   getfilesystemencodingR   t   TestCaseR   RV   RN   (   R    RY   R   R   RU   RE   R   R]   RV   R   R   R,   R   RP   RF   RG   (    (    R   R       s0   $				©	