
    c)                     v    d dl mZmZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd ZdS )    )absolute_importprint_function)rename_over_existing)with_directory_contentsNc                     	 t          t          j        d|           # t          $ r t	          t          j        d          w xY w)Nz2Cannot create a file when that file already exists)FileExistsErrorerrnoEEXIST	NameErrorIOError)dsts    Jlib/python3.11/site-packages/anaconda_project/internal/test/test_rename.py_raise_file_existsr      sP    Zel,`befff Z Z Zel$XYYYZs	    %Ac                  H    d } t          t          d          |            d S )Nc                 J   t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          rJ t	          |                                          dk    sJ t          ||           t           j                            |          rJ t           j                            |          sJ t	          |                                          dk    sJ d S )Nfoobar	stuff-fooospathjoinexistsopenreadr   dirnamename1name2s      r   do_testz2test_rename_target_does_not_exist.<locals>.do_test   s    We,,We,,w~~e$$$$$7>>%(((((E{{!![0000UE***7>>%(((((w~~e$$$$$E{{!![000000    r   )r   r   dictr    s    r   !test_rename_target_does_not_existr%      s4    1 1 1 D[1117;;;;;r!   c                  J    d } t          t          dd          |            d S )Nc                    t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ t          ||           t           j                            |          rJ t           j                            |          sJ t	          |                                          dk    sJ d S )Nr   r   r   	stuff-barr   r   s      r   r    z.test_rename_target_does_exist.<locals>.do_test+   s   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000UE***7>>%(((((w~~e$$$$$E{{!![000000r!   r   r(   r   r   r"   r$   s    r   test_rename_target_does_existr*   *   s6    1 1 1 D[kBBBGLLLLLr!   c                 P      fd}t          t          dd          |           d S )Nc                 4   t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ i ddl m fd}                    d|           t          ||           t           j                            |          rJ t           j                            |          sJ t	          |                                          dk    sJ t           j                            d	                   rJ d S )
Nr   r   r   r(   r   renamec                     d|v r|d<   t           j                            |          rt          |           d S  | |           d S N.bakr   r   r   r   r   srcr   real_renamesaved_backups     r   mock_renamezVtest_rename_target_does_exist_simulating_windows.<locals>.do_test.<locals>.mock_renameI   [    } +'*V$w~~c"" &"3'''''C%%%%%r!   	os.renamer   )	r   r   r   r   r   r   r.   setattrr   )r   r   r   r7   r5   r6   monkeypatchs       @@r   r    zAtest_rename_target_does_exist_simulating_windows.<locals>.do_test=   s   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000,,,,,,	& 	& 	& 	& 	& 	& 	K555UE***7>>%(((((w~~e$$$$$E{{!![00007>>,v"67777777r!   r   r(   r)   r"   r;   r    s   ` r   0test_rename_target_does_exist_simulating_windowsr=   <   sA    8 8 8 8 8: D[kBBBGLLLLLr!   c                 P      fd}t          t          dd          |           d S )Nc                    t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ ddl m fd}                    d|           t          j	        t                    5 }t          ||           d d d            n# 1 swxY w Y   d	t          |j                  v sJ t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ d S )
Nr   r   r   r(   r   r-   c                     t           j                            |          rt          |           d S d|v rt	          d           | |           d S )Nr1   Failing rename to backupr   r   r   r   OSError)r4   r   r5   s     r   r7   zHtest_rename_target_to_backup_fails.<locals>.do_test.<locals>.mock_renameh   s`    w~~c"" &"3'''''3 &8999C%%%%%r!   r9   rA   r   r   r   r   r   r   r.   r:   pytestraisesrC   r   reprvalue)r   r   r   r7   excinfor5   r;   s        @r   r    z3test_rename_target_to_backup_fails.<locals>.do_test^   s   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000,,,,,,	& 	& 	& 	& 	& 	K555]7## 	/w ...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/)T'--@-@@@@@w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![000000s   D**D.1D.r   r(   r)   r"   r<   s   ` r   "test_rename_target_to_backup_failsrJ   ]   sA    1 1 1 1 1: D[kBBBGLLLLLr!   c                 P      fd}t          t          dd          |           d S )Nc                    t           j                            | d          }t           j                            | d          t           j                            |          sJ t           j                                      sJ t	          |                                          dk    sJ t	                                                    dk    sJ i ddl m fd}                    d|           t          j	        t                    5 }t          |           d d d            n# 1 swxY w Y   d	t          |j                  v sJ t           j                            |          sJ t           j                                      sJ t	          |                                          dk    sJ t	                                                    dk    sJ t           j                            d
                   rJ d S )Nr   r   r   r(   r   r-   c                    d|v r|d<   t           j                            |          rt          |           d S dv rt           j                            d                   rc| d         k    rWt           j                                      rJ t           j                            d                   sJ t	          d           | |           d S )Nr1   r   Failed to copy after backuprB   )r4   r   r   r5   r6   s     r   r7   zDtest_rename_after_backup_fails.<locals>.do_test.<locals>.mock_rename   s    } +'*V$w~~c"" &"3'''''<' &BGNN<;O,P,P &UX\hio\pUp &7>>%00000w~~l6&:;;;;;;<<<C%%%%%r!   r9   rN   r   rD   )r   r   r7   rI   r   r5   r6   r;   s       @@@r   r    z/test_rename_after_backup_fails.<locals>.do_test   s(   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000,,,,,,
	& 
	& 
	& 
	& 
	& 
	& 
	& 	K555]7## 	/w ...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/,W]0C0CCCCCw~~e$$$$$w~~e$$$$$E{{!![0000E{{!![00007>>,v"67777777s   D00D47D4r   r(   r)   r"   r<   s   ` r   test_rename_after_backup_failsrO   ~   sB    "8 "8 "8 "8 "8H D[kBBBGLLLLLr!   c                 P      fd}t          t          dd          |           d S )Nc                    t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ i ddl m fd}                    d|           d	 }                    d
|           t          ||           t           j                            |          rJ t           j                            |          sJ t	          |                                          dk    sJ t           j                            d                   sJ 	                                 d S )Nr   r   r   r(   r   r-   c                     d|v r|d<   t           j                            |          rt          |           d S  | |           d S r0   r2   r3   s     r   r7   zjtest_rename_target_does_exist_simulating_windows_remove_backup_fails.<locals>.do_test.<locals>.mock_rename   r8   r!   r9   c                      t          d          )Nznot removing)rC   )filenames    r   mock_removezjtest_rename_target_does_exist_simulating_windows_remove_backup_fails.<locals>.do_test.<locals>.mock_remove   s    .)))r!   z	os.remover   )
r   r   r   r   r   r   r.   r:   r   undo)r   r   r   r7   rU   r5   r6   r;   s        @@r   r    zUtest_rename_target_does_exist_simulating_windows_remove_backup_fails.<locals>.do_test   s   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000,,,,,,	& 	& 	& 	& 	& 	& 	K555	* 	* 	* 	K555 	UE***7>>%(((((w~~e$$$$$E{{!![0000w~~l6233333 	r!   r   r(   r)   r"   r<   s   ` r   Dtest_rename_target_does_exist_simulating_windows_remove_backup_failsrW      sB    & & & & &P D[kBBBGLLLLLr!   c                 P      fd}t          t          dd          |           d S )Nc                    t           j                            | d          }t           j                            | d          }t           j                            |          sJ t           j                            |          sJ t	          |                                          dk    sJ t	          |                                          dk    sJ d }                    d|           t          j        t                    5 }t          ||           d d d            n# 1 swxY w Y   dt          |j                  v sJ d S )Nr   r   r   r(   c                      t          d          )Nit all went wrong)r   )r4   r   s     r   r7   zLtest_rename_other_error_besides_eexist.<locals>.do_test.<locals>.mock_rename   s    -...r!   r9   r[   )r   r   r   r   r   r   r:   rE   rF   r   r   strrH   )r   r   r   r7   rI   r;   s        r   r    z7test_rename_other_error_besides_eexist.<locals>.do_test   sa   We,,We,,w~~e$$$$$w~~e$$$$$E{{!![0000E{{!![0000	/ 	/ 	/ 	K555]7## 	/w ...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/"c'-&8&8888888s   D!!D%(D%r   r(   r)   r"   r<   s   ` r   &test_rename_other_error_besides_eexistr]      sA    9 9 9 9 9" D[kBBBGLLLLLr!   )
__future__r   r    anaconda_project.internal.renamer   ,anaconda_project.internal.test.tmpfile_utilsr   r	   r   rE   r   r%   r*   r=   rJ   rO   rW   r]    r!   r   <module>rb      s    7 6 6 6 6 6 6 6 A A A A A A P P P P P P  				 Z Z Z< < <"M M M$M M MBM M MB%M %M %MP)M )M )MXM M M M Mr!   