+
     Bi;                     F    R t ^ RIt^ RIt^ RIHt ^ RIHt  ! R R4      tR# )z$Tests common to tarfile and zipfile.N)	swap_attr)	os_helperc                   D  a  ] tR t^	t o R tRR ltR tR tR tR t	R t
R tR	 tR
 t]P                  R 4       t]P                  R 4       t]P                  R 4       t]P                  R 4       t]P                  R 4       t]P                  R 4       tR tR tRtV tR# )OverwriteTestsc                    \         P                  ! V P                  4       V P                  \        P
                  V P                  4       R # N)osmakedirstestdir
addCleanupr   rmtree)selfs   &*/usr/lib/python3.14/test/archiver_tests.pysetUpOverwriteTests.setUp   s*    
DLL!	(($,,7    c                    \        VR 4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)wbN)openwrite)r   pathcontentfs   &&& r   create_fileOverwriteTests.create_file   s,    $GGG s	   1A	c                    \         hr   NotImplementedError)r   r   s   &&r   r   OverwriteTests.open       !!r   c                    \         hr   r   )r   ars   &&r   
extractallOverwriteTests.extractall   r   r   c                   \         P                  P                  V P                  R 4      pV P	                  VR4       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       \        VR4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     L}; i  + '       g   i     R# ; i)test   contentNrb
   newcontent)r   r   joinr
   r   r   ar_with_filer"   
assertTrueisfileassertEqualreadr   targetr!   r   s   &   r   test_overwrite_file_as_file*OverwriteTests.test_overwrite_file_as_file   s    dllF3,YYt(())ROOB *v./&$1QVVX}5   *)  s    C'<!C:'C7	:D	c                   \         P                  P                  V P                  R 4      p\         P                  ! V4       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       R#   + '       g   i     L@; i)r%   N)
r   r   r)   r
   mkdirr   ar_with_dirr"   r+   isdirr   r0   r!   s   &  r   test_overwrite_dir_as_dir(OverwriteTests.test_overwrite_dir_as_dir#   sp    dllF3
YYt''((BOOB )f-. )(s   $B..B>	c                   \         P                  P                  V P                  R 4      p\         P                  ! V4       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  \         P                  P                  VR4      4      4       \        \         P                  P                  VR4      R4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r%   Nfiler'   r(   )r   r   r)   r
   r4   r   ar_with_implicit_dirr"   r+   r6   r,   r-   r.   r/   s   &   r   "test_overwrite_dir_as_implicit_dir1OverwriteTests.test_overwrite_dir_as_implicit_dir*   s    dllF3
YYt0011ROOB 2f-.rww||FF'CDE"'',,vv.55QVVX}5 65	 21 655s   $E*!E(E%	(E9	c           	     *   \         P                  P                  V P                  R 4      p\         P                  ! V4       V P                  V P                  4      ;_uu_ 4       pT P                  \        P                  R8X  d   \        M\        4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       R#   + '       g   i     LH; i  + '       g   i     LS; i)r%   win32N)r   r   r)   r
   r4   r   r*   assertRaisessysplatformPermissionErrorIsADirectoryErrorr"   r+   r6   r7   s   &  r   test_overwrite_dir_as_file)OverwriteTests.test_overwrite_dir_as_file4   s    dllF3
YYt(())R""cllg6M?(9; ;#; * 	f-.; ; *)s$   $9DC/	/D/C?:DD	c           	        \         P                  P                  V P                  R 4      pV P	                  VR4       V P                  V P                  4      ;_uu_ 4       pV P                  \        4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       \        VR4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r%   r&   Nr'   )r   r   r)   r
   r   r   r5   rA   FileExistsErrorr"   r+   r,   r-   r.   r/   s   &   r   test_overwrite_file_as_dir)OverwriteTests.test_overwrite_file_as_dir=   s    dllF3,YYt''((B""?33# 4 ) 	v./&$1QVVXz2   43 )(  s0    D >D	D "!D3DD  D0	3E	c           	        \         P                  P                  V P                  R 4      pV P	                  VR4       V P                  V P                  4      ;_uu_ 4       pT P                  \        P                  R8X  d   \        M\        4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       \        VR4      ;_uu_ 4       pV P                  VP!                  4       R4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r%   r&   r@   Nr'   )r   r   r)   r
   r   r   r<   rA   rB   rC   FileNotFoundErrorNotADirectoryErrorr"   r+   r,   r-   r.   r/   s   &   r   #test_overwrite_file_as_implicit_dir2OverwriteTests.test_overwrite_file_as_implicit_dirG   s    dllF3,YYt0011R""8O#4(:< <#< 2 	v./&$1QVVXz2  	< < 21
  s0    9D;D(	+D;=!E(D83D;;E	E	c                   \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      pV P	                  VR4       \         P
                  ! RV4       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       \        VR4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r%   test2r&   Nr'   r(   )r   r   r)   r
   r   symlinkr   r*   r"   r+   islinkr,   r-   r.   r   r0   target2r!   r   s   &    r   #test_overwrite_file_symlink_as_file2OverwriteTests.test_overwrite_file_symlink_as_fileR   s     dllF3'',,t||W5*-


7F#YYt(())ROOB *v./w/0'4  AQVVX}5 ! 	 *) !  s   !E+!E)E&	)E:	c                   \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      p\         P                  ! RV4       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       \        VR4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r%   rR   Nr'   r(   )r   r   r)   r
   rS   r   r*   r"   r+   rT   r,   r-   r.   rU   s   &    r   *test_overwrite_broken_file_symlink_as_file9OverwriteTests.test_overwrite_broken_file_symlink_as_file`   s     dllF3'',,t||W5


7F#YYt(())ROOB *v./w/0'4  AQVVX}5 ! 	 *) !  s   E!EE	E(	c                d   \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      p\         P                  ! V4       \         P
                  ! RVRR7       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       R#   + '       g   i     Ln; ir%   rR   Ttarget_is_directoryN)r   r   r)   r
   r4   rS   r   r5   r"   r+   rT   r6   r   r0   rV   r!   s   &   r   !test_overwrite_dir_symlink_as_dir0OverwriteTests.test_overwrite_dir_symlink_as_dirm   s     dllF3'',,t||W5



7F=YYt''((BOOB )v./g./ )(s   'DD/	c                   \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      p\         P                  ! V4       \         P
                  ! RVRR7       V P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  \         P                  P                  VR4      4      4       \        \         P                  P                  VR4      R4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       R#   + '       g   i     EL; i  + '       g   i     R# ; i)r%   rR   Tr^   Nr;   r'   r(   )r   r   r)   r
   r4   rS   r   r<   r"   r+   rT   r6   r,   r-   r.   rU   s   &    r   *test_overwrite_dir_symlink_as_implicit_dir9OverwriteTests.test_overwrite_dir_symlink_as_implicit_diry   s&    dllF3'',,t||W5



7F=YYt0011ROOB 2v./g./rww||GV'DEF"'',,w/66!QVVX}5 76 211
 766s   'G!GG	G+	c           	        \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      p\         P                  ! RVRR7       V P                  V P                  4      ;_uu_ 4       pV P                  \        4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       R#   + '       g   i     Lv; i  + '       g   i     L; ir]   )r   r   r)   r
   rS   r   r5   rA   rI   r"   r+   rT   assertFalseexistsr`   s   &   r   (test_overwrite_broken_dir_symlink_as_dir7OverwriteTests.test_overwrite_broken_dir_symlink_as_dir   s    dllF3'',,t||W5


7F=YYt''((B""?33# 4 ) 	v./01 43 )($   E/D/	E/D?:EE	c           	        \         P                  P                  V P                  R 4      p\         P                  P                  V P                  R4      p\         P                  ! RVRR7       V P                  V P                  4      ;_uu_ 4       pV P                  \        4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  V4      4       R#   + '       g   i     Lv; i  + '       g   i     L; ir]   )r   r   r)   r
   rS   r   r<   rA   rI   r"   r+   rT   rg   rh   r`   s   &   r   1test_overwrite_broken_dir_symlink_as_implicit_dir@OverwriteTests.test_overwrite_broken_dir_symlink_as_implicit_dir   s    dllF3'',,t||W5


7F=YYt0011R""?33# 4 2 	v./01 43 21rk   c           	       a \         P                  P                  V P                  R 4      pV3R lp\	        \         RV4      ;_uu_ 4       oV P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       R#   + '       g   i     LH; i  + '       g   i     LS; i)r%   c                  (   < S! V / VB  S! V / VB  R # r    argskwargs
orig_mkdirs   *,r   concurrent_mkdirDOverwriteTests.test_concurrent_extract_dir.<locals>.concurrent_mkdir       ''''r   r4   N)
r   r   r)   r
   r   r   r5   r"   r+   r6   r   r0   rv   r!   ru   s   &   @r   test_concurrent_extract_dir*OverwriteTests.test_concurrent_extract_dir   s    dllF3	( r7$4554++,,# - 6 	f-. -, 65s$   $C/C	CCCC$	c           	     f  a \         P                  P                  V P                  R 4      pV3R lp\	        \         RV4      ;_uu_ 4       oV P                  V P                  4      ;_uu_ 4       pV P                  V4       RRR4       RRR4       V P                  \         P                  P                  V4      4       V P                  \         P                  P                  \         P                  P                  VR4      4      4       R#   + '       g   i     L; i  + '       g   i     L; i)r%   c                  (   < S! V / VB  S! V / VB  R # r   rq   rr   s   *,r   rv   MOverwriteTests.test_concurrent_extract_implicit_dir.<locals>.concurrent_mkdir   rx   r   r4   Nr;   )r   r   r)   r
   r   r   r<   r"   r+   r6   r,   ry   s   &   @r   $test_concurrent_extract_implicit_dir3OverwriteTests.test_concurrent_extract_implicit_dir   s    dllF3	( r7$45544455# 6 6 	f-.rww||FF'CDE 65 65s$   $D /D	D DD  D0	rq   N)r   )__name__
__module____qualname____firstlineno__r   r   r   r"   r1   r8   r=   rF   rJ   rO   r   skip_unless_symlinkrW   rZ   ra   rd   ri   rm   rz   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   	   s     8""6/6/3	3 ""6 #6 ""
6 #
6 ""	0 #	0 ""6 #6 ""2 #2 ""2 #2/	F 	Fr   r   )__doc__r   rB   test.supportr   r   r   rq   r   r   <module>r      s"    * 	 
 " "hF hFr   