
    4\hj                     >    	 d dl Z d dlZd dlmZ  G d d          ZdS )    N)	os_helperc                      e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             ZdS )OverwriteTestsc                     t          j        | j                   |                     t          j        | j                   d S N)osmakedirstestdir
addCleanupr   rmtree)selfs    =/opt/python-3.11.14/usr/lib/python3.11/test/archiver_tests.pysetUpzOverwriteTests.setUp
   s3    
DL!!!	($,77777    r   c                     t          |d          5 }|                    |           d d d            d S # 1 swxY w Y   d S )Nwb)openwrite)r   pathcontentfs       r   create_filezOverwriteTests.create_file   s    $ 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   488c                     t           r   NotImplementedError)r   r   s     r   r   zOverwriteTests.open       !!r   c                     t           r   r   )r   ars     r   
extractallzOverwriteTests.extractall   r   r   c                    t           j                            | j        d          }|                     |d           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   |                     t           j        	                    |                     t          |d          5 }| 
                    |                                d           d d d            d S # 1 swxY w Y   d S )Ntest   contentrb
   newcontent)r   r   joinr
   r   r   ar_with_filer   
assertTrueisfileassertEqualreadr   targetr   r   s       r   test_overwrite_file_as_filez*OverwriteTests.test_overwrite_file_as_file   sW   dlF33,,,YYt()) 	 ROOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 v..///&$ 	61QVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   A88A<?A<)C;;C?C?c                 j   t           j                            | j        d          }t          j        |           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   |                     t           j        	                    |                     d S )Nr!   )
r   r   r%   r
   mkdirr   ar_with_dirr   r'   isdirr   r,   r   s      r   test_overwrite_dir_as_dirz(OverwriteTests.test_overwrite_dir_as_dir"   s    dlF33
YYt'(( 	 BOOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 f--.....s   A66A:=A:c                    t           j                            | j        d          }t          j        |           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   |                     t           j        	                    |                     |                     t           j        
                    t           j                            |d                               t          t           j                            |d          d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   filer#   r$   )r   r   r%   r
   r/   r   ar_with_implicit_dirr   r'   r1   r(   r)   r*   r+   s       r   "test_overwrite_dir_as_implicit_dirz1OverwriteTests.test_overwrite_dir_as_implicit_dir)   s   dlF33
YYt011 	 ROOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 f--...rw||FF'C'CDDEEE"',,vv..55 	6QVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   A66A:=A:1)E''E+.E+c                    t           j                            | j        d          }t          j        |           |                     | j                  5 }|                     t          j	        dk    rt          nt                    5  |                     |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t           j                            |                     d S )Nr!   win32)r   r   r%   r
   r/   r   r&   assertRaisessysplatformPermissionErrorIsADirectoryErrorr   r'   r1   r2   s      r   test_overwrite_dir_as_filez)OverwriteTests.test_overwrite_dir_as_file3   sH   dlF33
YYt()) 	$R""clg6M6M??(9; ; $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	f--.....s6   2B?B(B?(B,	,B?/B,	0B??CCc                 t   t           j                            | j        d          }|                     |d           |                     | j                  5 }|                     t                    5  | 	                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | 
                    t           j                            |                     t          |d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   r"   r#   )r   r   r%   r
   r   r   r0   r:   FileExistsErrorr   r'   r(   r)   r*   r+   s       r   test_overwrite_file_as_dirz)OverwriteTests.test_overwrite_file_as_dir<   s   dlF33,,,YYt'(( 	$B""?33 $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	v..///&$ 	31QVVXXz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sH   B*1BB*B	B*B	B**B.1B.7)D--D14D1c                    t           j                            | j        d          }|                     |d           |                     | j                  5 }|                     t          j	        dk    rt          nt                    5  |                     |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t           j                            |                     t          |d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   r"   r9   r#   )r   r   r%   r
   r   r   r6   r:   r;   r<   FileNotFoundErrorNotADirectoryErrorr   r'   r(   r)   r*   r+   s       r   #test_overwrite_file_as_implicit_dirz2OverwriteTests.test_overwrite_file_as_implicit_dirF   s   dlF33,,,YYt011 	$R""8O8O#4#4(:< < $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	v..///&$ 	31QVVXXz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sH   2CB*C*B.	.C1B.	2CCC)EEEc                    t           j                            | j        d          }t           j                            | j        d          }|                     |d           t          j        d|           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   | 	                    t           j        
                    |                     | 	                    t           j                            |                     t          |d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   test2r"   r#   r$   )r   r   r%   r
   r   symlinkr   r&   r   r'   islinkr(   r)   r*   r   r,   target2r   r   s        r   #test_overwrite_file_symlink_as_filez2OverwriteTests.test_overwrite_file_symlink_as_fileQ   s    dlF33',,t|W55*---

7F###YYt()) 	 ROOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 v..///w//000'4   	6AQVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   B22B69B61)E''E+.E+c                    t           j                            | j        d          }t           j                            | j        d          }t          j        d|           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   |                     t           j        	                    |                     |                     t           j        
                    |                     t          |d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   rH   r#   r$   )r   r   r%   r
   rI   r   r&   r   r'   rJ   r(   r)   r*   rK   s        r   *test_overwrite_broken_file_symlink_as_filez9OverwriteTests.test_overwrite_broken_file_symlink_as_file_   s    dlF33',,t|W55

7F###YYt()) 	 ROOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 v..///w//000'4   	6AQVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   :BB #B )EEEc                 F   t           j                            | j        d          }t           j                            | j        d          }t          j        |           t          j        d|d           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   | 	                    t           j        
                    |                     | 	                    t           j                            |                     d S Nr!   rH   Ttarget_is_directory)r   r   r%   r
   r/   rI   r   r0   r   r'   rJ   r1   r   r,   rL   r   s       r   !test_overwrite_dir_symlink_as_dirz0OverwriteTests.test_overwrite_dir_symlink_as_dirl   s    dlF33',,t|W55


7F====YYt'(( 	 BOOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 v..///g../////s   B22B69B6c                    t           j                            | j        d          }t           j                            | j        d          }t          j        |           t          j        d|d           |                     | j                  5 }|                     |           d d d            n# 1 swxY w Y   | 	                    t           j        
                    |                     | 	                    t           j                            |                     | 	                    t           j                            t           j                            |d                               t          t           j                            |d          d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr!   rH   TrR   r5   r#   r$   )r   r   r%   r
   r/   rI   r   r6   r   r'   rJ   r1   r(   r)   r*   rK   s        r   *test_overwrite_dir_symlink_as_implicit_dirz9OverwriteTests.test_overwrite_dir_symlink_as_implicit_dirx   s    dlF33',,t|W55


7F====YYt011 	 ROOB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 v..///g..///rw||GV'D'DEEFFF"',,w//66 	6!QVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   B22B69B6)GGGc                    t           j                            | j        d          }t           j                            | j        d          }t          j        d|d           |                     | j                  5 }|                     t                    5  | 	                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | 
                    t           j                            |                     |                     t           j                            |                     d S rQ   )r   r   r%   r
   rI   r   r0   r:   rA   r   r'   rJ   assertFalseexistsrT   s       r   (test_overwrite_broken_dir_symlink_as_dirz7OverwriteTests.test_overwrite_broken_dir_symlink_as_dir   ss   dlF33',,t|W55

7F====YYt'(( 	$B""?33 $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	v..///00111116   <CB9-C9B=	=C B=	CCCc                    t           j                            | j        d          }t           j                            | j        d          }t          j        d|d           |                     | j                  5 }|                     t                    5  | 	                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | 
                    t           j                            |                     |                     t           j                            |                     d S rQ   )r   r   r%   r
   rI   r   r6   r:   rA   r   r'   rJ   rY   rZ   rT   s       r   1test_overwrite_broken_dir_symlink_as_implicit_dirz@OverwriteTests.test_overwrite_broken_dir_symlink_as_implicit_dir   ss   dlF33',,t|W55

7F====YYt011 	$R""?33 $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	v..///0011111r\   N)r   )__name__
__module____qualname__r   r   r   r   r-   r3   r7   r?   rB   rF   r   skip_unless_symlinkrM   rO   rU   rW   r[   r^    r   r   r   r      si       8 8 8   " " "" " "6 6 6/ / /6 6 6/ / /3 3 3	3 	3 	3 "6 6 #"6 "
6 
6 #"
6 "	0 	0 #"	0 "6 6 #"6 "2 2 #"2 "2 2 #"2 2 2r   r   )r   r;   test.supportr   r   rc   r   r   <module>re      sh    * 				 



 " " " " " "S2 S2 S2 S2 S2 S2 S2 S2 S2 S2r   