
    0hh                     n   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
JrJr  \ R                  R                  (       d"   \
R                  " \R                   " 5       5        S r " S S\R*                  5      r\S:X  a  \R0                  " 5         gg! \\4 a    \R&                  " S5      ef = f)    N)rmtree
change_cwdTESTFN_UNICODETESTFN_UNENCODABLEcreate_empty_filez1No Unicode filesystem semantics on this platform.c                 z    [         R                  R                  U 5      (       a  [         R                  " U 5        g g N)ospathexistsunlink)filenames    ?/opt/python-3.13.8/usr/lib/python3.13/test/test_unicode_file.pyremove_if_existsr      s&    	ww~~h
		(      c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestUnicodeFiles   c           
      0   U R                  [        R                  R                  U5      5        U R                  [        R                  R	                  U5      5        U R                  [        R
                  " U[        R                  5      5        U R                  [        R                  R                  [        R                  R                  U5      5      5        U R                  [        R                  R	                  [        R                  R                  U5      5      5        U R                  [        R
                  " [        R                  R                  U5      [        R                  5      5        [        R                  " US5        [        R                  " US 5        [        R                  " U[        R                  " 5       [        R                  " 5       45        U R                  X5        U R                  [        R                  R                  U5      [        R                  R                  [        R                  " [        R                  " U5      5      S   5      :H  5        [        R                  R                  [        R                  R                  U5      5      u  p#[        R                  " U5      n[         R"                  " SU5      nU Vs/ s H  n[         R"                  " SU5      PM     nnU R%                  X45        g s  snf )Ni  r   NFD)
assertTruer
   r   r   isfileaccessR_OKabspathchmodutimetime_do_copyishglobescapesplitlistdirunicodedata	normalizeassertIn)selfr   r   base	file_listfs         r   
_do_singleTestUnicodeFiles._do_single   s   x01x01		(BGG45rwwx'@ABrwwx'@AB		"''//(";RWWEF
5!
4 
DIIK56,GGOOH%rwwtyyXAV7WXY7Z'[[	] WW]]277??8#<=
JJt$	 $$UD1>GHi[**5!4i	Hd& Is   !Lc                    U R                  [        R                  R                  U5      5        [        R                  " XS-   5        U R                  [        R                  R                  U5      5        U R                  [        R                  R                  US-   5      5        [        R                  " US-   U5        U R                  [        R                  R                  US-   5      5        U R                  [        R                  R                  U5      5        [        R                  " XS-   5        [        R                  " US-   5        [        R                  " XS-   5        U R                  [        R                  R                  U5      5        U R                  [        R                  R                  US-   5      5        [        R                  " US-   U5        U R                  [        R                  R                  US-   5      5        U R                  [        R                  R                  U5      5        [        R                  " XS-   5        U R                  [        R                  R                  US-   5      5        [        R                  " US-   5        U R                  [        R                  R                  US-   5      5        g )Nz.new)r   r
   r   r   renameassertFalseshutilcopyr   mover   copy2)r'   	filename1	filename2s      r   r   TestUnicodeFiles._do_copyish9   s   y12
		)/0	23y6'9:;
		)f$i0	F(:;<y12I612
		)f$%I612	23y6'9:;I&	2	F(:;<y12 	YF 23y6'9:;
		)f$%	F(:;<r   c                 $   [         R                  R                  U5      (       a  [        U5        [         R                  " U5         [        U5         [         R                  " 5       nUn[        R                  " SU5      n[        R                  " SU5      nU R                  [         R                  R                  U5      U5        S S S 5        [         R                  " U5        g ! , (       d  f       N%= f! [         R                  " U5        f = f)Nr   )r
   r   isdirr   mkdirr   getcwdr$   r%   assertEqualbasenamermdir)r'   	make_name
chdir_name
cwd_resultname_results        r   _do_directoryTestUnicodeFiles._do_directoryV   s    77==##9

	 J'YY[
'(225*E
)33E;G  !1!1*!=kJ ( HHY (' HHYs%   C7 A5C&C7 &
C40C7 7Dc                 :   [        U5        [        U5         U R                  U5        [        R                  " U5        U R                  [        R                  R                  U5      (       + 5        [        R                  " U[        R                  [        R                  -  5      n[        R                  " U5         U R                  U5        [        R                  " U5        g ! [        R                  " U5        f = f! [        R                  " U5        f = fr	   )r   r   r+   r
   r   r   r   r   openO_CREATO_WRONLYclose)r'   r   r*   s      r   _test_singleTestUnicodeFiles._test_singleh   s    "(#	 OOH%IIhBGGNN8445GGHbjj2;;67
	 OOH%IIh IIh IIhs   C' ?D 'C?Dc                 h    U R                  [        5        [        b  U R                  [        5        g g r	   )rI   r   r   )r'   s    r   test_single_files"TestUnicodeFiles.test_single_filesz   s*    .))01 *r   c                     SnU R                  [        U-   [        U-   5        [        b!  U R                  [        U-   [        U-   5        g g )Nz.dir)rB   r   r   )r'   exts     r   test_directories!TestUnicodeFiles.test_directories   sL     >#-~c/AB)1#51#57 *r    N)__name__
__module____qualname____firstlineno__r+   r   rB   rI   rL   rP   __static_attributes__rR   r   r   r   r      s     '4=: $ $2
	7r   r   __main__)r
   r    r   r0   sysr$   unittesttest.support.os_helperr   r   r   r   r   r   supports_unicode_filenamesencodegetfilesystemencodingUnicodeError	TypeErrorSkipTestr   TestCaser   rS   mainrR   r   r   <module>rd      s      
  + + 
ww))Uc779:o7x(( o7d zMMO w )$ U  STTUs   !B B4