
    0hh                         S SK r S SKrS SKrS SKrS SKJr  S SKJrJr  S SK	J
r
  / SQr\(       d  \R                  / SQ5        \ R                  R                  (       d,  \R                  " 5       r \ H  r\R%                  \5        M      " S S	\R*                  5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r\S:X  a  \R8                  " 5         gg! \ a    \R(                  " S5      ef = f)    N	normalize)is_apple	os_helper)support)
1_abc2_asciiu   3_Grüß-Gottu   4_Γειά-σαςu   5_Здравствуйтеu   6_にぽんu   7_השקצץסu   8_曨曩曫u   9_曨שんдΓßu	   10_΅´)	u	   11_΅ϓϔu   12_΅ϓϔu   13_ ̈́ΎΫu   14_ẛ῁῍῎῏῝῞῟῭u   15_΅´𣏕u   16_   Au   17_   Au   18_   Az19_   Az>only NT+ and systems with Unicode-friendly filesystem encodingc                   R   \ rS rSr\" \5      rSrS rS r	\
S4S jrS r\R                  S:X  a  \\
4rO\rS	 r\R&                  " \S
5      \R&                  " \R,                  =(       d    \R.                  S5      S 5       5       r\R&                  " \S
5      S 5       rS rS rSrg)UnicodeFileTests=   Nc                 j    [         R                  " [        R                  5        U R                  [        R                  [        R                  5        [        5       nU R                   H  n[         R                  R                  [        R                  U R                  U5      5      n[        US5       nUR                  US-   R                  S5      5        S S S 5        [         R                  " U5        UR!                  U5        M     Xl        g ! [         a     Nf = f! , (       d  f       NP= fNwb
utf-8)osmkdirr   TESTFNFileExistsError
addCleanuprmtreesetfilespathjoinnormopenwriteencodestatadd)selfr   namefs       I/opt/python-3.13.8/usr/lib/python3.13/test/test_unicode_file_functions.pysetUpUnicodeFileTests.setUpA   s    	HHY%%& 		(()*:*:;JJD77<<	 0 0$))D/BDdD!Qd**734 "GGDMIIdO  
  		 "!s   $D 6$D$
D! D!$
D2	c                 T    U R                   (       a  [        U R                   U5      $ U$ N)normal_formr   )r"   ss     r%   r   UnicodeFileTests.normQ   s#    T--q11    Tc           
          U R                  U5       nU" U5        S S S 5        WR                  R                  nU(       a)  U R                  XbSUR                  < SU< SU< 35        g g ! , (       d  f       NU= f)Nz
Function '(z-) failed with bad filename in the exception: )assertRaises	exceptionfilenameassertEqual__name__)r"   fnr2   expected_exceptioncheck_filenamecexc_filenames          r%   _apply_failureUnicodeFileTests._apply_failureV   se     12axL 3{{++\8 kk8\6C D  32s   	A**
A8c                    U R                    H  nSU-   nU R                  [        U5        U R                  [        R                  U5        U R                  [        R
                  U5        U R                  [        R                  U5        U R                  [        R                  U5        U R                  [        R                  U5        M     g )Nnot_)	r   r:   r   r   r    chdirrmdirremovelistdirr"   r#   s     r%   test_failuresUnicodeFileTests.test_failuresa   s    JJDD=Dd+.$/$/		40

D1 r-   win32c                 (   U R                    H  n[        US5      nUR                  US-   R                  S5      5        UR	                  5         [
        R                  " U5        U R                  [
        R                  XR                  5        M     g r   )
r   r   r   r   closer   r    r:   rA   _listdir_failure)r"   r#   r$   s      r%   	test_openUnicodeFileTests.test_openr   se    JJDT4 AGGT$Y&&w/0GGIGGDM

D2G2GH r-   z"irrelevant test on Apple platformsz:test fails on Emscripten/WASI when host platform is macOS.c                 "  ^ [        U R                  5      n[        5       n[        / SQ5       H  mU[        U4S jU 5       5      -  nM     X!-  nU H  nU R                  [        U5        U R                  [        R
                  U5        U R                  [        R                  U5        U R                  [        R                  U5        U R                  [        R                  U5        U R                  [        R                  U5        M     g )N)NFCNFDNFKCNFKDc              3   <   >#    U  H  n[        TU5      v   M     g 7fr)   r   ).0filenfs     r%   	<genexpr>2UnicodeFileTests.test_normalize.<locals>.<genexpr>   s     @%$)B--%s   )
r   r   r:   r   r   r    r>   r?   r@   rA   )r"   r   othersr#   rS   s       @r%   test_normalizeUnicodeFileTests.test_normalize~   s     DJJ45Bc@%@@@F 6Dd+.$/$/		40

D1 r-   c                 4   [        U R                  5      n[        R                  " 5          [        R                  " S[
        5        [        R                  " [        R                  R                  [        R                  " 5       5      5      nS S S 5        [        R                  " [        R                  5      n[        S U 5       5      nU R                  XU< SU< 35        U R                  [        W5      [        U5      5        g ! , (       d  f       N= f)Nignorec              3   ~   #    U  H3  n[         R                  R                  [        R                  U5      v   M5     g 7fr)   )r   r   r   r   r   )rQ   r$   s     r%   rT   0UnicodeFileTests.test_listdir.<locals>.<genexpr>   s(     @R"'',,y//33Rs   ;=z != )r   r   warningscatch_warningssimplefilterDeprecationWarningr   rA   r   r   r   sysgetfilesystemencodingr3   len)r"   sf0f1f2sf2s        r%   test_listdirUnicodeFileTests.test_listdir   s    $**o$$&!!(,>?I,,335579 :B ' ZZ	(()@R@@c#:;R#b'* '&s   A"D		
Dc                     U R                    H1  n[        R                  " US5        [        R                  " SU5        M3     g )Ntmp)r   r   renamerB   s     r%   test_renameUnicodeFileTests.test_rename   s,    JJDIIdE"IIeT" r-   c                    [         R                  R                  [        R                  S5      nSn[        R
                  " U5         [        US5       nUR                  US-   R                  S5      5        S S S 5        [         R                  " U[         R                  5        [         R                  " U5        S S S 5        g ! , (       d  f       NR= f! , (       d  f       g = f)Nu   Grüß-曨曩曫u   ß-曨曩曫r   r   r   )r   r   r   r   r   temp_cwdr   r   r   accessR_OKr@   )r"   dirnamer2   r$   s       r%   test_directoryUnicodeFileTests.test_directory   s    '',,y//>@,(h%D009: &IIhrww'IIh	 )(%% )(s%   C$C8AC
C	C
C#)r   )r4   
__module____qualname____firstlineno__r   	filenamesr   r*   r&   r   FileNotFoundErrorr:   rC   ra   platformNotADirectoryErrorrH   rI   unittestskipIfr   r   is_emscriptenis_wasirW   rh   rm   rt   __static_attributes__ r-   r%   r   r   =   s    	NEK  +<&*	D	2 ||w-/@@-I __XCD__0D2	 E
2" __XCD	+ E	+#
 r-   r   c                       \ rS rSrSrSrg)UnicodeNFCFileTests   rL   r   Nr4   rv   rw   rx   r*   r   r   r-   r%   r   r          Kr-   r   c                       \ rS rSrSrSrg)UnicodeNFDFileTests   rM   r   Nr   r   r-   r%   r   r      r   r-   r   c                       \ rS rSrSrSrg)UnicodeNFKCFileTests   rN   r   Nr   r   r-   r%   r   r          Kr-   r   c                       \ rS rSrSrSrg)UnicodeNFKDFileTests   rO   r   Nr   r   r-   r%   r   r      r   r-   r   __main__)r   ra   r}   r]   unicodedatar   test.supportr   r   testr   ry   extendr   supports_unicode_filenamesrb   
fsencodingr#   r   UnicodeEncodeErrorSkipTestTestCaser   r   r   r   r   r4   mainr   r-   r%   <module>r      s   
 
   ! , 	(   $ 
ww))**,JHDKK
# p x(( p f* * + +  zMMO Q  H !G H 	HHs   0C$ $C=