Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_tempfile.cpython-310.pyc
o

�9j��@sBddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlZddlmZddlmZddlmZddlmZejejkZeed�Zej�d�rfd	Znd
ZGdd�dej�ZGd
d�dej�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#ej$dd��Z%dd�Z&Gdd�d�Z'Gdd �d e'e�Z(Gd!d"�d"e�Z)Gd#d$�d$e�Z*Gd%d&�d&e�Z+Gd'd(�d(e'e�Z,Gd)d*�d*e�Z-Gd+d,�d,e�Z.Gd-d.�d.e�Z/ej0ej1u�rGd/d0�d0e�Z2Gd1d2�d2�Z3Gd3d4�d4e�Z4e5d5k�re�6�dSdS)6�N)�mock)�support)�	os_helper)�
script_helper)�warnings_helper�spawnl�openbsd�0�dc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestLowLevelInternalscCs:|�tt�d��|�tt�d��|�tt�d��dS�N��)�assertIs�str�tempfile�_infer_return_type�bytes��self�r�)/usr/lib/python3.10/test/test_tempfile.py�test_infer_return_type_singles&sz4TestLowLevelInternals.test_infer_return_type_singlescCs�|�tt�dd��|�tt�dd��|�t��t�dd�Wd�n1s*wY|�t��t�dd�Wd�dS1sFwYdSr�rrrrr�assertRaises�	TypeErrorrrrr� test_infer_return_type_multiples+s�"�z6TestLowLevelInternals.test_infer_return_type_multiplescCs�|�tt�dd��|�tt�dd��|�tt�dd��|�tt�dd��|�tt�dd��|�t��t�ddd�Wd�n1sIwY|�t��t�ddd�Wd�dS1sfwYdSrrrrrr�)test_infer_return_type_multiples_and_none3s�"�z?TestLowLevelInternals.test_infer_return_type_multiples_and_nonecCs|�tt�t�d���dS)N�/)rrrr�pathlib�Pathrrrr�test_infer_return_type_pathlib>sz4TestLowLevelInternals.test_infer_return_type_pathlibcCsGdd�d�}|�tt�|d���|�tt�|d���|�tt�d|d���|�tt�d|d���|�tt�d|d���|�tt�d|d���|�t��t�d|d��Wd�n1sewY|�t��t�d|d��Wd�dS1s�wYdS)Nc@seZdZdd�Zdd�ZdS)zCTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.PathcSs
||_dS�N��path)rr$rrr�__init__Cs
zLTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.Path.__init__cSs|jSr"r#rrrr�
__fspath__F�zNTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.Path.__fspath__N)�__name__�
__module__�__qualname__r%r&rrrrr Bsr r�/r
rr)rr rrr�test_infer_return_type_pathlikeAs�"�z5TestLowLevelInternals.test_infer_return_type_pathlikeN)r(r)r*rrrr!r,rrrrr%src@s8eZdZe�d�Ze�d�Zdd�Zdd�Zdd�Z	d	S)
�BaseTestCasez^[a-z0-9_-]{8}$s^[a-z0-9_-]{8}$cCs*t��|_|j��tjdtdtd�dS)N�ignore�mktemp)�category�message�module)r�check_warnings�_warnings_manager�	__enter__�warnings�filterwarnings�RuntimeWarningr(rrrr�setUp\s



�zBaseTestCase.setUpcCs|j�ddd�dSr")r4�__exit__rrrr�tearDownbszBaseTestCase.tearDownc
Cs�tj�|�\}}|dt|��}|t|�t|�d�}|dur7|�t|�t|�tus1t|tj�r3tnt	d�|durL|�t|�t|�turHtnt	d�|dura|�t|�t|�tur]tnt	d�|||fdkrq|�t|�td�|�
tj�|�tj�|�d||f�|�
||d||f�|�
||d||f�|t|�t|�t|��}t|t�r�|jn|j
}	|�|	�|�d||	jf�dS)Nzunexpected return type�NNNzdefault return type must be strzfile %r not in directory %rzfile %r does not begin with %rzfile %r does not end with %rz$random characters %r do not match %r)�osr$�split�lenr�typer�
isinstance�PathLiker�assertEqual�abspath�	str_check�b_check�
assertTrue�match�pattern)
r�name�dir�pre�suf�ndir�nbase�npre�nsuf�checkrrr�	nameCheckesJ����
�
�
���zBaseTestCase.nameCheckN)
r(r)r*�re�compilerErFr9r;rSrrrrr-Ws

r-c@seZdZdd�ZdS)�TestExportscCsptj}ddddddddddddddd�}g}|D]}|ddkr)||vr)|�|�q|�t|�dkd|�dS)N�)�NamedTemporaryFile�
TemporaryFile�mkstemp�mkdtempr/�TMP_MAX�
gettempprefix�gettempprefixb�
gettempdir�gettempdirb�tempdir�template�SpooledTemporaryFile�TemporaryDirectoryr�_zunexpected keys: %s)r�__dict__�appendrGr?)r�dict�expected�unexp�keyrrr�test_exports�s0�
��zTestExports.test_exportsN)r(r)r*rlrrrrrV�srVcsReZdZdZ�fdd�Zdd�Zdd�Zdd	�Ze�	e
ed
�d�dd
��Z�Z
S)�TestRandomNameSequencez6Test the internal iterator object _RandomNameSequence.c�t��|_t���dSr")r�_RandomNameSequence�r�superr9r��	__class__rrr9��
zTestRandomNameSequence.setUpcCst|j�}|�|ddd�dS�Nr
)�nextrprS)r�srrr�test_get_eight_char_str�s
z.TestRandomNameSequence.test_get_eight_char_strcCsHi}|j}tt�D]}t|�}|�|ddd�|�||�d||<q	dS)Nr
rW)rp�range�
TEST_FILESrvrS�assertNotIn)rrhrp�irwrrr�	test_many�s
�z TestRandomNameSequence.test_manycCs.d}|j}|D]
}|d7}|dkrdSqdS)NrrW�)rp)rr|rprwrrr�
supports_iter�s��z$TestRandomNameSequence.supports_iter�forkz!os.fork is required for this testc
Cs�t��\}}d}zFt��}|s*t�|�t�|t|j��d��t�|�t�d�t|j�}t�	|t
|���d�}W|rDtj
|dd�t�|�t�|�n|rXtj
|dd�t�|�t�|�w|�||�dS)N�asciir)�exitcode)r=�piper��close�writervrp�encode�_exit�readr?�decoder�wait_process�assertNotEqual)r�read_fd�write_fd�pid�parent_value�child_valuerrr�test_process_awareness�s(




�
z-TestRandomNameSequence.test_process_awareness)r(r)r*�__doc__r9rxr}r�unittest�
skipUnless�hasattrr=r��
__classcell__rrrrrrm�s
�rmc@� eZdZdZdd�Zdd�ZdS)�TestCandidateTempdirListz3Test the internal function _candidate_tempdir_list.cCs4t��}|�t|�dk�|D]}|�|t�qdS�Nr)r�_candidate_tempdir_list�assertFalser?�assertIsInstancer)r�cand�crrr�test_nonempty_list�s
�z+TestCandidateTempdirList.test_nonempty_listc
Cs�t���P}dD]}t�|�}|stj�|�||<qt��}dD]}t�|�}|s*t�|�	||�qzt�
�}WnttfyEtj
}Ynw|�	||�Wd�dS1sWwYdS)N)�TMPDIR�TEMP�TMP)r�EnvironmentVarGuardr=�getenvr$rDrr��
ValueError�assertIn�getcwd�AttributeError�OSError�curdir)r�env�envname�dirnamer�rrr�test_wanted_dirs�s$

�

�"�z)TestCandidateTempdirList.test_wanted_dirsN)r(r)r*r�r�r�rrrrr��s	r�c@seZdZdZdd�ZdS)�TestGetDefaultTempdirzTest _get_default_tempdir().cs~t������fdd�}t�td|���t��|�t���g�dd�}t�td|��*|�t	��t��Wd�n1s@wY|�t���g�Wd�n1sXwYt�td|��*|�t	��t��Wd�n1sywY|�t���g�Wd�n1s�wYWd�n1s�wYWd�dSWd�dS1s�wYdS)Ncs�gSr"rr��our_temp_directoryrr�our_candidate_listr'zKTestGetDefaultTempdir.test_no_files_left_behind.<locals>.our_candidate_listr�c_st��r")r�)�args�kwargsrrr�
raise_OSError"r'zFTestGetDefaultTempdir.test_no_files_left_behind.<locals>.raise_OSError�openr�)
rrdr�	swap_attr�_get_default_tempdirrCr=�listdirr�FileNotFoundError)rr�r�rr�r�test_no_files_left_behinds2
�
��
�����"�z/TestGetDefaultTempdir.test_no_files_left_behindN)r(r)r*r�r�rrrrr�sr�c@r�)�TestGetCandidateNamesz0Test the internal function _get_candidate_names.cCst��}|�|tj�dSr")r�_get_candidate_namesr�ro)r�objrrr�test_retval5sz!TestGetCandidateNames.test_retvalcCs"t��}t��}|�||u�dSr")rr�rG)r�a�brrr�test_same_thing:sz%TestGetCandidateNames.test_same_thingN)r(r)r*r�r�r�rrrrr�2sr�c	csl�t��}z*t�td|��dVWd�n1swYWt�|�dSWt�|�dSt�|�w)Nra)rr[rr�r�rmtree�rKrrr�_inside_empty_temp_dirBs���r�cst�td�fdd��S)Nr�cst��Sr")�iterr��namesrr�<lambda>Osz'_mock_candidate_names.<locals>.<lambda>)rr�rr�rr�r�_mock_candidate_namesLs
�r�c@�$eZdZdd�Zdd�Zdd�ZdS)�TestBadTempdircCs�t��gt�tj�j}}|tjtjBtjBM}t�	tj|�z9t�
tjtj�r.|�d�|�
t��|��Wd�n1sBwY|�t�tj�g�Wt�	tj|�nt�	tj|�wWd�dS1smwYdS)Nz!can't set the directory read-only)r�r=�statrra�st_mode�S_IWUSR�S_IWGRP�S_IWOTH�chmod�access�W_OK�skipTestr�PermissionError�	make_temprCr�)r�oldmode�moderrr�test_read_only_directoryTs

�""�z'TestBadTempdir.test_read_only_directoryc
Cs�t��Itj�tjd�}t�td|��!|�t	��|�
�Wd�n1s(wYWd�n1s7wYWd�dSWd�dS1sOwYdS)N�nonexistentra)r�r=r$�joinrrarr�rr�r��rrarrr�test_nonexisting_directorybs
����"�z)TestBadTempdir.test_nonexisting_directoryc
Cs�t��Rtj�tjd�}t|d���t�	td|��#|�
ttf��|�
�Wd�n1s1wYWd�n1s@wYWd�dSWd�dS1sXwYdS)N�file�wbra)r�r=r$r�rrar�r�rr�r�NotADirectoryErrorr�r�r�rrr�test_non_directoryis
����"�z!TestBadTempdir.test_non_directoryN)r(r)r*r�r�r�rrrrr�Rsr�c@s�eZdZdZGdd�d�Zddd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
e�e
d�dd��Ze�ed�dd��Zdd�Zdd�Zdd�ZdS)�TestMkstempInnerz*Test the internal function _mkstemp_inner.c@s<eZdZejZejZej	Z
ejZdd�Z
dd�Zdd�ZdS)zTestMkstempInner.mkstempedcCs>|r|j}n|j}t�|||�}t�|||||�\|_|_dSr")�_bflags�_tflagsrr�_mkstemp_inner�fdrJ)rrKrLrM�bin�flags�output_typerrrr%{sz#TestMkstempInner.mkstemped.__init__cCst�|j|�dSr")r=r�r�)rrrrrr��sz TestMkstempInner.mkstemped.writecCs|�|j�|�|j�dSr")�_closer��_unlinkrJrrrr�__del__�sz"TestMkstempInner.mkstemped.__del__N)r(r)r*r�_bin_openflagsr��_text_openflagsr�r=r�r��unlinkr�r%r�r�rrrr�	mkstempedusr�NrWcCsrt�|||�}|dur|turt��}nt��}|dur|�}|dur&|�}|�||||�}|�|j|||�|Sr")rrrr_r`r�rSrJ)rrKrLrMr�r�r�rrr�	do_create�s
zTestMkstempInner.do_createcCs^|���d�|jdd��d�|jdd��d�|jddd��d�|jddd��d�dS)	N�blatr��rLr��rM�rLrM�aa�.txt)r�r�rrrr�
test_basic��
zTestMkstempInner.test_basiccCs2t��}|j|dd��d�|j|dd��d�|j|dd��d�|j|ddd��d�|j|dd	d��d�|�t��|jd
dd��d�Wd�n1sRwY|�t��|j|d
d��d�Wd�n1sqwY|�t��|j|dd
d��d�Wd�dS1s�wYdS)Nr�rKrMr��a�rKrL�b�rKrLrM�aa�.txtr
)rr`r�r�rr)r�dir_brrr�test_basic_with_bytes_names�s��"�z,TestMkstempInner.test_basic_with_bytes_namescCs*ttt��}|D]
}|jdd�||<qdS�Nr�r�)�listryrzr��r�extantr|rrr�test_basic_many�s�z TestMkstempInner.test_basic_manyc	Cs`t��}z!|j|d��d�|jt�|�d��d�Wt��t�	|�dSt��t�	|�w�Nr�r�)
rr[r�r�rr r�
gc_collectr=�rmdir�rrKrrr�test_choose_directory�s�z&TestMkstempInner.test_choose_directorycCsJ|��}t�t�|j�j�}d}tjdkr|d?}|d}|�||�dS)N��win32��I)	r�r��S_IMODEr=rJr��sys�platformrC)rr�r�ri�userrrr�test_file_mode�s
zTestMkstempInner.test_file_modezos.spawnl not availablecCs�tjrd}nd}|��}|�t�|j�d�d|j}zt}Wnty-t	j
d}Ynwtj�tj�
tj�|��d�}t	jdkrLdt	j}d|}nt	j}t�tjt	j||||�}|�|dkd	|�|�|dkd
|�dS)N�v�qFz%drztf_inherit_check.pyrz"%s"z$child process caught fatal signal %dz child process reports failure %d)r�verboser�rCr=�get_inheritabler��__file__�	NameErrorr�argvr$r�r�rDr�
executabler�P_WAITr�)rrr�r��me�tester�	decorated�retvalrrr�test_noinherit�s.
��



�zTestMkstempInner.test_noinheritztext mode not availablecCsL|jdd�}|�d�|�d�t�|jdtj�|�t�|jd�d�dS)Nr)r�sblatsextra
r~r�)r�r�r=�lseekr��SEEK_SETrCr��r�frrr�
test_textmode�s


zTestMkstempInner.test_textmodecCst�t��t��dtjt�Sru)rr�r_r]r�rrrrrr�s
�zTestMkstempInner.make_tempc	Cs�t��Mtddd��.|��\}}t�|�|�|�d��|��\}}t�|�|�|�d��Wd�n1s;wYWd�dSWd�dS1sSwYdS�N�aaa�bbb)r�r�r�r=r�rG�endswith)r�fd1�name1�fd2�name2rrr�!test_collision_with_existing_files
�

P�z2TestMkstempInner.test_collision_with_existing_filec	Cs�t��Ftddd��'t��}|�|�d��|��\}}t�|�|�|�d��Wd�n1s4wYWd�dSWd�dS1sLwYdSr*)	r�r�rr[rGr-r�r=r�)rrKr�rJrrr�&test_collision_with_existing_directorys
�
P�z7TestMkstempInner.test_collision_with_existing_directory)NNNrW)r(r)r*r�r�r�r�rrr
rr�r��
has_spawnlr$�has_textmoder)r�r2r3rrrrr�rs 




%


r�c@r�)�TestGetTempPrefixzTest gettempprefix().cCsLt��}|�|t�|�t|�d�t��}|�|t�|�t|�d�dSr�)rr]r�r�
assertGreaterr?r^r)r�p�pbrrr�test_sane_template$sz$TestGetTempPrefix.test_sane_templatec	Cslt��d}tjdd�}z#tj�||�}t�|tjtjB�}t�	|�t�
|�Wt�|�dSt�|�w)Nz
xxxxxx.xxxr
��prefix)rr]r[r=r$r�r��O_RDWR�O_CREATr�r�r)rr8�dr�rrr�test_usable_template0s
z&TestGetTempPrefix.test_usable_templateN)r(r)r*r�r:r@rrrrr6!sr6c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�TestGetTempDirzTest gettempdir().cCsTt��t��fD]}|�tj�|�p|tjkd|�|�tj�|�d|�qdS)Nz%r is not an absolute pathz%r is not a directory)	rr_r`rGr=r$�isabsr��isdir�rr?rrr�test_directory_existsDs���z$TestGetTempDir.test_directory_existscCs8t���}|�d�Wd�dS1swYdS)Nr�)rrXr�)rr�rrr�test_directory_writableMs
"�z&TestGetTempDir.test_directory_writablecCsPt��}t��}t��}|�||u�|�t|�t|��|�|t�|��dSr")	rr_r`rGr�r@rCr=�fsdecode)rr�r�r�rrrr�VszTestGetTempDir.test_same_thingc	Cs�t�d�}tjd}t_z6t���}||d<|�t��|�Wd�n1s(wYW|t_t�|�dSW|t_t�|�dS|t_t�|�w)Nz-Tempr�)rr[rarr�rCr_r)r�case_sensitive_tempdir�_tempdirr�rrr�test_case_sensitive`s

���z"TestGetTempDir.test_case_sensitiveN)r(r)r*r�rErFr�rJrrrrrAAs		
rAc@s:eZdZdZd
dd�Zdd�Zdd�Zd	d
�Zdd�ZdS)�TestMkstempzTest mkstemp().Nc
	Cs�t�|||�}|dur|turt��}nt��}|dur|�}|dur&|�}tj|||d�\}}tj�|�\}}tj�	|�}	|�
|	|d|	|f�z|�||||�Wt�|�t�
|�dSt�|�t�
|�w)N�rKr<�suffixz+Directory '%s' incorrectly returned as '%s')rrrr_r`rZr=r$r>rDrCrSr�r�)
rrKrLrMr�r�rJrNrO�adirrrrr�rs*

�

�zTestMkstemp.do_createcCsL|��|jdd�|jdd�|jddd�|jddd�|jdd	�dS)
Nr�r�r�r�r�r�r��.r��r�rrrrr��szTestMkstemp.test_basiccCst��}|j|dd�|j|dd�|j|dd�|j|ddd�|j|ddd�|jd	d
�|�t��|jdddd�Wd�n1sGwY|�t��|jd	ddd�Wd�n1sdwY|�t��|jd	dd
d�Wd�dS1s�wYdS)Nrr�r�r�r�r�rr�.r�rOr�r�)rr`r�rrrDrrrr�s ��"�z'TestMkstemp.test_basic_with_bytes_namesc	CsDt��}z|j|d�|jt�|�d�Wt�|�dSt�|�w�Nr�)rr[r�rr r=rrrrrr
�s
z!TestMkstemp.test_choose_directorycCsVtj}|�tjttd�f�z�t��\}}t�|�t�|�|�|t�t�	�t_|�tjt
�|�t��t�|�t�	�t
�t��\}}t�|�t�|�|�|t
�tjdd�\}}t�|�t�|�|�|t�tjdd�\}}t�|�t�|�|�|t�tjt��d�\}}t�|�t�|�|�|t�W|t_dS|t_w)Nr��rMz
test-temp-r;r�)rrar�rr@rZr=r�r�r`rr_)r�orig_tempdirr�r$rrr�.test_for_tempdir_is_bytes_issue40701_api_warts�s8










z:TestMkstemp.test_for_tempdir_is_bytes_issue40701_api_wartsr<)	r(r)r*r�r�r�rr
rUrrrrrKos
		rKc@sbeZdZdZdd�Zddd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestMkdtempzTest mkdtemp().cCst��Sr")rr[rrrrr��szTestMkdtemp.make_tempNcCs�t�|||�}|dur|turt��}nt��}|dur|�}|dur&|�}tj|||d�}z|�||||�|WSt�|��)NrL)	rrrr_r`r[rSr=r)rrKrLrMr�rJrrrr��s 

zTestMkdtemp.do_createcCs^t�|���t�|jdd��t�|jdd��t�|jddd��t�|jddd��dS�Nr�r�r�r�r�r�r�)r=rr�rrrrr��r�zTestMkdtemp.test_basiccCs4t��}t�|j|d��t�|j|dd��t�|j|dd��t�|j|ddd��t�|j|ddd��|�t��t�|j|d	dd��Wd�n1sRwY|�t��t�|j|dd
d��Wd�n1srwY|�t��t�|jdddd��Wd�dS1s�wYdS)Nr�r�r�r�r�r�rrr�r�r
)rr`r=rr�rrrDrrrr�s��"�z'TestMkdtemp.test_basic_with_bytes_namesc
Cslttt��}z|D]
}|jdd�||<q	W|D]}t|t�r#t�|�qdS|D]}t|t�r4t�|�q(wr)rryrzr�rArr=rrrrrr�s�

��

��zTestMkdtemp.test_basic_manyc	CsPt��}zt�|j|d��t�|jt�|�d��Wt�|�dSt�|�wrR)rr[r=rr�rr rrrrr
	s
z!TestMkdtemp.test_choose_directoryc	Csj|��}z*t�t�|�j�}|dM}d}tjdkr!|d?}|d}|�||�Wt�|�dSt�|�w)Ni�i�rrr)	r�r�rr=r�rrrCr)rrKr�rirrrr�	test_modes
zTestMkdtemp.test_modec	Cs�t��Ftddd��'tjdd�}|��|�|j�d��t��}|�|�d��Wd�n1s4wYWd�dSWd�dS1sLwYdS)Nr+r,F)�delete)	r�r�rrXr�rGrJr-r[)rr�rKrrrr2#s
�P�z-TestMkdtemp.test_collision_with_existing_filec	Cs�t��?tddd�� t��}|�|�d��t��}|�|�d��Wd�n1s-wYWd�dSWd�dS1sEwYdSr*)r�r�rr[rGr-)r�dir1�dir2rrrr3.s
�P�z2TestMkdtemp.test_collision_with_existing_directorycCstj}|�tjttd�f�zut��}t�|�|�|t�t��t_|�tjt	�|�t�
�t�|�t��t	�t��}t�|�|�|t	�tjdd�}t�|�|�|t�tjdd�}t�|�|�|t�tjt�
�d�}t�|�|�|t�W|t_dS|t_w)Nz-dirrSz
test-mkdtemp-r;r�)rrar�rr@r[r=rr`rr_)rrTr$rrrrU8s.





z:TestMkdtemp.test_for_tempdir_is_bytes_issue40701_api_wartsr<)r(r)r*r�r�r�r�rrr
rXr2r3rUrrrrrV�s
	
rVcsTeZdZdZ�fdd�Z�fdd�ZGdd�d�Zdd	d
�Zdd�Zd
d�Z	�Z
S)�
TestMktempzTest mktemp().crnr")rr[rKrqr9rrrrrr9XrtzTestMktemp.setUpcs&|jrt�|j�d|_t���dSr")rKr=rrqr;rrrrrr;\szTestMktemp.tearDownc@s(eZdZejZejZdd�Z	dd�Z
dS)zTestMktemp.mktempedcCs.tj|||d�|_t�t�|j|jd��dS)NrLr)rr/rJr=r�r�r�)rrKrLrMrrrr%fszTestMktemp.mktemped.__init__cCs|�|j�dSr")r�rJrrrrr�lszTestMktemp.mktemped.__del__N)r(r)r*r=r�r�rr�r�r%r�rrrr�mktempedbs
r]r
cCs(|�|j||�}|�|j|j||�|Sr")r]rKrSrJ)rrLrMr�rrrr�oszTestMktemp.do_createcC�@|��|jdd�|jdd�|jddd�|jddd�dSrWrPrrrrr�u�
zTestMktemp.test_basiccCs4ttt��}|D]
}|jdd�||<q~t��dSr)rryrzr�rr
rrrrr}}s
zTestMktemp.test_many)r
r
)r(r)r*r�r9r;r]r�r�r}r�rrrrrr\Ss

r\c@sreZdZdZddd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestNamedTemporaryFilezTest NamedTemporaryFile().Nr
TcCs8|durt��}tj||||d�}|�|j|||�|S)N)rKr<rMrY)rr_rXrSrJ)rrKrLrMrYr�rrrr��s
�z TestNamedTemporaryFile.do_createcCr^rWrPrrrrr��r_z!TestNamedTemporaryFile.test_basiccCsT|��}t�|�}|j}|j}~|d�~|d�~tjdd�r(|�|��dSdS)NsfoosbarT)�cpython)r��weakref�refr�r�check_impl_detail�assertIsNone)rr(�wrr��write2rrr�test_method_lookup�s
�z)TestNamedTemporaryFile.test_method_lookupcsPgd���fdd�}t|��D]\}}|�|�|�q|�|t��d�dS)N)sspam
seggs
sbeans
cs*tjdd�}|�d����|�d�|S)N�w+b�r�rr)rrXr�r��seek�r(��linesrr�	make_file�s
z3TestNamedTemporaryFile.test_iter.<locals>.make_filerW)�	enumeraterCr?)rror|�lrrmr�	test_iter�s
z TestNamedTemporaryFile.test_itercCs(t��}|�tj�|j�d|j�dS)Nz$NamedTemporaryFile %s does not exist)rrXrGr=r$�existsrJr'rrr�test_creates_named�s�z)TestNamedTemporaryFile.test_creates_namedc	Cs�t��}z:tj|d��
}|�d�Wd�n1swY|�t�|�g�|�tj�	|j
�d|j
�Wt�|�dSt�|�w)Nr�r�z(NamedTemporaryFile %s exists after close)rr[rXr�rCr=r�r�r$rsrJr�rrKr(rrr�test_del_on_close�s��z(TestNamedTemporaryFile.test_del_on_closec	Cs�t��}d}z2tj|dd�}|j}|�d�|��|�tj�	|j�d|j�W|dur2t�
|�t�|�dS|durBt�
|�t�|�w)NF)rKrYr�z)NamedTemporaryFile %s missing after close)rr[rXrJr�r�rGr=r$rsr�r)rrK�tmpr(rrr�test_dis_del_on_close�s 
�
�
z,TestNamedTemporaryFile.test_dis_del_on_closecC�.t��}|�d�|��|��|��dS�N�abc
)rrXr�r�r'rrr�test_multiple_close��

z*TestNamedTemporaryFile.test_multiple_closecslt����|�tj��j��Wd�n1swY|�tj��j���fdd�}|�t	|�dS)Nc�*��	Wd�dS1swYdSr"rrrlrr�
use_closed��"�z?TestNamedTemporaryFile.test_context_manager.<locals>.use_closed)
rrXrGr=r$rsrJr�rr��rrrrlr�test_context_manager�s
�z+TestNamedTemporaryFile.test_context_managercC�t��}|�tj|�|�t��tjd|d�Wd�n1s"wY|�t��tjd|d�Wd�n1s>wY|�	t
�|�g�dS�Nrf)r�rK�)rr[�
addCleanuprr�rr�rXrrCr=r�rrrr�
test_bad_mode����z$TestNamedTemporaryFile.test_bad_modecC�ft��}|�tj|�|�t��tjdd|d�Wd�n1s#wY|�t	�
|�g�dS�N�wzbad-encoding)�encodingrK)rr[r�rr�r�LookupErrorrXrCr=r�rrrr�test_bad_encoding��z(TestNamedTemporaryFile.test_bad_encodingc
Cs�t��}|�tj|�t�d��?}t�dt����'}t�|_	|�
t��tj|d�Wd�n1s4wYWd�n1sCwYWd�n1sRwY|�j�
�|�t�|�g�dS)Nztempfile._TemporaryFileWrapperzio.openr�)rr[r�rr�r�patch�	mock_open�KeyboardInterrupt�side_effectrrXr��
assert_calledrCr=r�)rrK�mock_ntfr�rrr�test_unexpected_errors �����z,TestNamedTemporaryFile.test_unexpected_error)Nr
r
T)r(r)r*r�r�r�rhrrrtrvrxr|r�r�r�r�rrrrr`�s



	r`c@s�eZdZdZd-dd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�ZdS).�TestSpooledTemporaryFilezTest SpooledTemporaryFile().rNr
cCs&|durt��}tj||||d�}|S)N)�max_sizerKr<rM)rr_rc)rr�rKrLrMr�rrrr�sz"TestSpooledTemporaryFile.do_createcCs4|��}|�|j�|jdddd�}|�|j�dS)Nr
r�r�)r�rLrM)r�r��_rolledr'rrrr�sz#TestSpooledTemporaryFile.test_basicc	Cs�t��}zItjd|d�}|�|j�|�d�|�|j�|j}|��|�	t
�|�g�t|t
�sF|�t
j�|�d|�Wt
�|�dSWt
�|�dSt
�|�w)N�
)r�rKsblat blat blat blat blat z*SpooledTemporaryFile %s exists after close)rr[rcr�r�r�rGrJr�rCr=r�rA�intr$rsr)rrKr(�filenamerrrrv&s 

��z*TestSpooledTemporaryFile.test_del_on_closecCsL|jdd�}|�|j�td�D]
}|�dd�|�d�q|�|j�dS)N��r��r�xxxxxxxxxxxxxxxxxxxx)r�r�r�ryrkr�)rr(r|rrr�test_rewrite_small7sz+TestSpooledTemporaryFile.test_rewrite_smallcCs^|jdd�}|�|j�|�d�|�|j�|�d�|�|j�|�d�|�|j�dS)Nr�r�r��
xxxxxxxxxx�x)r�r�r�r�rGr'rrr�test_write_sequential@s


z.TestSpooledTemporaryFile.test_write_sequentialcCs@|��}|�d�|�d�}|�|d�|��}|�|d�dS)N)r��y�zrsxyz)r��
writelinesrkrCr�)rr(�pos�bufrrr�test_writelinesLs

z(TestSpooledTemporaryFile.test_writelinescCs<|jdd�}|�d�|�|j�|�d�|�|j�dS)N�#r�)r�r�sxxxxxr�)r�r�r�r�r�rGr'rrr�test_writelines_sequentialUs


z3TestSpooledTemporaryFile.test_writelines_sequentialcCsV|jdd�}|�|j�|�dd�}|�|d�|�|j�|�d�|�|j�dS)Nr�r�r
rr�)r�r�r�rkrCr�rG)rr(r�rrr�test_sparse^s
z$TestSpooledTemporaryFile.test_sparsecCs:|jdd�}|�|j�|�|��dk�|�|j�dS)Nr�r�r)r�r�r�rG�filenor'rrr�test_filenoisz$TestSpooledTemporaryFile.test_filenocCs:t��}|�d�|�|j�|��|��|��dSrz)rrcr�r�r�r�r'rrr�#test_multiple_close_before_rolloverps
z<TestSpooledTemporaryFile.test_multiple_close_before_rollovercCs>tjdd�}|�d�|�|j�|��|��|��dS)NrWr�r{)rrcr�rGr�r�r'rrr�"test_multiple_close_after_rolloverys
z;TestSpooledTemporaryFile.test_multiple_close_after_rollovercCsL|jdd�}|j}|j}|j}|d�|d�|dd�|�|d�d�dS)Nr�r�s#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr�FsFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)r�r�r�rkrC)rr(r�r�rkrrr�test_bound_methods�s
z+TestSpooledTemporaryFile.test_bound_methodscCs�tjdd�}|�d�|�|j�|�|jd�|�|j�|�	t
��|jWd�n1s1wY|�	t
��|jWd�n1sIwY|�	t
��|j
Wd�n1sawY|�d�|�|j�|�|jd�|�|j�|�	t
��|jWd�n1s�wY|�	t
��|jWd�n1s�wY|�	t
��|j
Wd�dS1s�wYdS)Nr�r�r�rir�zrb+)rrcr�r�r�rCr�rerJrr��newlinesr��errorsrG�assertIsNotNoner'rrr�test_properties�s6
���
��"�z(TestSpooledTemporaryFile.test_propertiescCsHtjdddd�}|�d�|�d�|�|��d�|�d�|�d�|�|��d�|�|j�|�|jd�|�	|j
�|�|jtj
�|�|jd�|�|jd	�|�d
�|�d�|�|��d�|�d�|�d�|�|��d
�|�|j�|�|jd�|�|j
�|�|jtj
�|�|jd�|�|jd	�dS)N�w+r��utf-8)r�r�r�zabc
rzdef
zabc
def
�strictzxyzzy
zabc
def
xyzzy
zfoobar
zabc
def
xyzzy
foobar
)rrcr�rkrCr�r�r�r�rerJr�r=�linesepr�r�rGr�r'rrr�test_text_mode�s6�







z'TestSpooledTemporaryFile.test_text_modecCstjdddddd�}|�d�|�d�|�|��d�|�|j�|�|jd�|�	|j
�|�|j�|�|j
d�|�|jd�|�d	�|�d
�|�d�|�|��d�|�|j�|�|jd�|�|j
�|�|j�|�|j
d�|�|jd�dS)Nr�r�r
r�r.)r�r��newliner�r�uΛ
ruΜΜΜΜΜΜΜΜΜΜ
u(ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝuBΛ
ΜΜΜΜΜΜΜΜΜΜ
ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ)rrcr�rkrCr�r�r�r�rerJr�r�r�r�rGr'rrr�test_text_newline_and_encoding�s2�





�z7TestSpooledTemporaryFile.test_text_newline_and_encodingcsltjdd���|��j�|��j�Wd�n1swY|��j��fdd�}|�t|�dS)NrWr�cr~r"rrrlrrr�r�zQTestSpooledTemporaryFile.test_context_manager_before_rollover.<locals>.use_closed)rrcr�r��closedrGrr�r�rrlr�$test_context_manager_before_rollover�s�z=TestSpooledTemporaryFile.test_context_manager_before_rollovercs�tjdd��#�|��j���d����|��j�|��j�Wd�n1s,wY|��j��fdd�}|�t	|�dS)NrWr�r{cr~r"rrrlrrr�r�zQTestSpooledTemporaryFile.test_context_manager_during_rollover.<locals>.use_closed)
rrcr�r�r��flushrGr�rr�r�rrlr�$test_context_manager_during_rollover�s
�z=TestSpooledTemporaryFile.test_context_manager_during_rollovercs�tjdd����d����|��j���|��j�Wd�n1s(wY|��j��fdd�}|�t	|�dS)NrWr�r{cr~r"rrrlrrrr�zPTestSpooledTemporaryFile.test_context_manager_after_rollover.<locals>.use_closed)
rrcr�r�rGr�r�r�rr�r�rrlr�#test_context_manager_after_rollover�s
�z<TestSpooledTemporaryFile.test_context_manager_after_rollovercCs�tjdd�}|�d�|�d�|��|�|j�|�|j�	�d�tjdd�}|�d�|�d�|�|j�|�|j�	�d�tjdd�}|�d�|�d�|�
|j�|�t�|�
��jd�dS)	Nr�r�sabcdefg
rr�sabcdr~)rrcr�rk�truncater�r�rC�_file�getvaluerGr=�fstatr��st_sizer'rrr�!test_truncate_with_size_parameter	s 





z:TestSpooledTemporaryFile.test_truncate_with_size_parametercCs|�tjttj�dSr")r�rrcr�types�GenericAliasrrrr�test_class_getitems�z+TestSpooledTemporaryFile.test_class_getitem)rNr
r
)r(r)r*r�r�r�rvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�s,
					 r�c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�TestTemporaryFilezTest TemporaryFile().cCst��dSr")rrYrrrrr�'szTestTemporaryFile.test_basiccCsJt��}tj|d�}|�d�zt�|�WdS|��t�|��r	)rr[rYr�r=rr�rurrr�test_has_no_name,s

z"TestTemporaryFile.test_has_no_namecCryrz)rrYr�r�r'rrrr|<r}z%TestTemporaryFile.test_multiple_closecs@�fdd�}|dd�|dd�|dddd	�|d
ddd�dS)
NcsZtj|i|���}|�|�|�d���||���Wd�dS1s&wYdSr�)rrYr�rkrCr�)�inputr�r��fileobjrrr�	roundtripGs


"�z;TestTemporaryFile.test_mode_and_encoding.<locals>.roundtrips1234rizabdc
r�uΛzutf-16)r�zfoo
r
)r�r)rr�rrr�test_mode_and_encodingEs


z(TestTemporaryFile.test_mode_and_encodingcCr�r�)rr[r�rr�rr�rYrrCr=r�rrrrr�Rr�zTestTemporaryFile.test_bad_modecCr�r�)rr[r�rr�rr�rYrCr=r�rrrrr�[r�z#TestTemporaryFile.test_bad_encodingcCst��}|�tj|�t�dd��ft�d��Q}t�d��<}t�d��'}t�|_|�	t��tj
|d�Wd�n1s>wYWd�n1sMwYWd�n1s\wYWd�n1skwYWd�n1szwY|��|�t
�|�g�dS)Nztempfile._O_TMPFILE_WORKSFz	os.unlinkzos.openzos.closer�)rr[r�rr�rr�r�r�rrYr�rCr=r�)rrK�mock_unlinkr��
mock_closerrrr�bs4���������z'TestTemporaryFile.test_unexpected_errorN)r(r)r*r�r�r�r|r�r�r�r�rrrrr�$s	
	r�c@r�)�
NulledModulescGs&dd�|D�|_dd�|jD�|_dS)NcSsg|]}|j�qSr)rf)�.0�modrrr�
<listcomp>ssz*NulledModules.__init__.<locals>.<listcomp>cSsg|]}|���qSr)�copy)r�rcrrrr�ts)�refs�contents)r�modulesrrrr%rszNulledModules.__init__cCs"|jD]}|D]}d||<qqdSr")r�)rr?rkrrrr5vs


��zNulledModules.__enter__cGs.t|j|j�D]
\}}|��|�|�qdSr")�zipr�r��clear�update)r�exc_infor?r�rrrr:{s�zNulledModules.__exit__N)r(r)r*r%r5r:rrrrr�qsr�c@s�eZdZdZ		d.dd�Zd/dd	�Zd
d�Zdd
�Zdd�Ze	j
dd��Ze	j
dd��Ze
�eed�d�e	j
dd���Zejdd��Zejdd��Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Ze
�eed�d�d,d-��ZdS)0�TestTemporaryDirectoryzTest TemporaryDirectory().Nr
rWFc	CsJ|durt��}tj||||d�}|�|j|||�|�|j|||�|S)N)rKr<rM�ignore_cleanup_errors)rr_rdrSrJ�
do_create2)	rrKrLrM�recurse�dirs�filesr�rwrrrr��s�z TestTemporaryDirectory.do_createc	Cs�|r!t|�D]}tj�|d|�}t�|�|�||d||�qt|�D]#}ttj�|d|�d��
}|�d�Wd�n1sCwYq%dS)Nzdir%drWz
test%d.txtr�sHello world!)ryr=r$r��mkdirr�r�r�)rr$r�r�r�r|rJr(rrrr��s
���z!TestTemporaryDirectory.do_create2cCstt���}Wd�n1swY|�t��}tj|d�Wd�n1s*wY|�|jjtj�dSrR)rrdrr�rC�	exception�errno�ENOENT)rr��cmrrr�test_mkdtemp_failure�s
��z+TestTemporaryDirectory.test_mkdtemp_failurec	Csrt��}z.|j|d�}|�tj�|j�d|j�|��|�	tj�|j�d|j�Wt�
|�dSt�
|�w)Nr�z$TemporaryDirectory %s does not exist�*TemporaryDirectory %s exists after cleanup)rr[r�rGr=r$rsrJ�cleanupr�r)rrKr?rrr�test_explicit_cleanup�s��z,TestTemporaryDirectory.test_explicit_cleanupc	Cst���z}|j|dd�}t�|j�}|�|��d|�d��t|dd��}|�	d�|�
�Wd�n1s9wY|�tt
|�d	���ttj�d
��d|���|�|��tj�d
�d|�d��|�
�|�|��d|�d
��Wd�dS1s�wYdS)z=Test that cleanup doesn't return an error when ignoring them.T�rKr��TemporaryDirectory � does not exist�
a_file.txt�w+t�
Hello world!
N�*�win�1Unexpected number of files in TemporaryDirectory � existence state unexpectedz exists after cleanup)rrdr�rr rJrGrsr�r�r�rCr?r�globr�rr�
startswithr��r�working_dir�temp_dir�	temp_path�	open_filerrr�"test_explict_cleanup_ignore_errors�s:
�

�

���

�
�"�z9TestTemporaryDirectory.test_explict_cleanup_ignore_errorscCs�|��}|jdd�}t�|jtj�|jd��|��|�tj�|j�d|j�|�	tj�|j�d�|�
t�|j�dgd�|��dS)Nr�r��foor�z-Directory pointed to by a symlink was deletedz	test0.txtz>Contents of the directory pointed to by a symlink were deleted)r�r=�symlinkrJr$r�r�r�rsrGrCr�)r�d1�d2rrr�(test_cleanup_with_symlink_to_a_directory�s���z?TestTemporaryDirectory.test_cleanup_with_symlink_to_a_directorycs�jdd���}tj�|d�}t|d���tj�|d�}t�|�td�D]̉�dK��jt	�d�d	�����fd
d�}��d��|d
dd�Wd�n1sRwY��d��|d
dd�Wd�n1smwY��d��+t�
|��t�|�j}||dd�t�|�j}��
||d||f�Wd�n1s�wY��d��+t�
|��t�|�j}||dd�t�|�j}��
||d||f�Wd�n1s�wYWd�n1s�wYq%Wd�dS1s�wYdS)Nrr�file1r�rZ�r�03orjc��jdd�}tj�|jd�}tj|||d�z
tj|�dd�Wn	ty)Ynwzt�|��Wn	ty;Ynwt�|j��|�	���
tj�|j��dS�Nrrr��target_is_directoryF)�follow_symlinks)r�r=r$r�rJrr��NotImplementedErrorr�r�r�rs��targetrrr�r�rrr�test��$���zDTestTemporaryDirectory.test_cleanup_with_symlink_modes.<locals>.test�nonexisting file�nonexistingFr�nonexisting dirT�
existing filez%03o != %03o�existing dir)r�r=r$r�r�r�r�ry�subTest�formatr�r�r�rC)rrr	rZr�old_mode�new_moderrr�test_cleanup_with_symlink_modes�sL
��
��
������"�z6TestTemporaryDirectory.test_cleanup_with_symlink_modes�chflagszrequires os.chflagsc	s�tjtjB������jdd���}tj�|d�}t|d��	�tj�|d�}t�
|���fdd�}��d��|d	d
d�Wd�n1sIwY��d��|d	d
d�Wd�n1sdwY��d��&t�|��t�|�j
}||d
d�t�|�j
}��||�Wd�n1s�wY��d��&t�|��t�|�j
}||d
d�t�|�j
}��||�Wd�n1s�wYWd�dSWd�dS1s�wYdS)Nrrr	r�rZcrr
)r�r=r$r�rJrr!rr�r�r�rsr�r�rrrrrzDTestTemporaryDirectory.test_cleanup_with_symlink_flags.<locals>.testrrFrrTrr)r��UF_IMMUTABLE�UF_NOUNLINK�check_flagsr�r=r$r�r�r�r�rr!�st_flagsrC)rrr	rZr�	old_flags�	new_flagsrr"r�test_cleanup_with_symlink_flagss>

�����""�z6TestTemporaryDirectory.test_cleanup_with_symlink_flagsc	CsRt��}z|j|d�}|j}~|�tj�|�d|�Wt�|�dSt�|�w)Nr��*TemporaryDirectory %s exists after __del__)	rr[r�rJr�r=r$rsr�rrKr?rJrrr�test_del_on_collection?s�z-TestTemporaryDirectory.test_del_on_collectionc	Cs�t���g}|j|dd�}t�|j�}|�|��d|�d��t|dd��}|�	d�~Wd�n1s6wY|�
tt|�
d	���ttj�d
��d|���|�
|��tj�d
�d|�d��Wd�dS1snwYdS)
z@Test that ignoring errors works when TemporaryDirectory is gced.Tr�r�r�r�r�r�Nr�r�r�r�)rrdr�rr rJrGrsr�r�rCr?rr�r�rrr�r�rrr�$test_del_on_collection_ignore_errorsLs0
�

�
���

�"�z;TestTemporaryDirectory.test_del_on_collection_ignore_errorscCs�|���B}dD]6}dj||d�}t�d|�\}}}|����}|�tj�	|�d|�|�dd�}|�
d|�|�d	|�qWd�dS1sIwYdS)
N)�builtinsr=�shutilrrr6a�if True:
                    import builtins
                    import os
                    import shutil
                    import sys
                    import tempfile
                    import warnings

                    tmp = tempfile.TemporaryDirectory(dir={dir!r})
                    sys.stdout.buffer.write(tmp.name.encode())

                    tmp2 = os.path.join(tmp.name, 'test_dir')
                    os.mkdir(tmp2)
                    with open(os.path.join(tmp2, "test0.txt"), "w") as f:
                        f.write("Hello world!")

                    {mod}.tmp = tmp

                    warnings.filterwarnings("always", category=ResourceWarning)
                    )rKr��-cr�r��backslashreplace�
Exception �'ResourceWarning: Implicitly cleaning up�r�rr�assert_python_okr��stripr�r=r$rsr{r�)rrKr��code�rc�out�err�tmp_namerrr�test_del_on_shutdownas
���"�z+TestTemporaryDirectory.test_del_on_shutdowncCs�t���a}dj|d�}t�d|�\}}}t�|�����}|�	t
t|�d���t
tj�d��d|���|�	|��tj�d�d|�d��|�d	d
�}|�d|�|�d|�|�d
|�Wd�dS1shwYdS)z?Test ignoring errors works when a tempdir is gc'ed on shutdown.a�if True:
                import pathlib
                import sys
                import tempfile
                import warnings

                temp_dir = tempfile.TemporaryDirectory(
                    dir={working_dir!r}, ignore_cleanup_errors=True)
                sys.stdout.buffer.write(temp_dir.name.encode())

                temp_dir_2 = pathlib.Path(temp_dir.name) / "test_dir"
                temp_dir_2.mkdir()
                with open(temp_dir_2 / "test0.txt", "w") as test_file:
                    test_file.write("Hello world!")
                open_file = open(temp_dir_2 / "open_file.txt", "w")
                open_file.write("Hello world!")

                warnings.filterwarnings("always", category=ResourceWarning)
                )r�r0r�r�r�r�r�r�r1�	Exception�Errorr3N)rrdrrr5rr r�r6rCr?rr�r�rrr�rsr{r�)rr�r7�__r9r:rrrr�"test_del_on_shutdown_ignore_errors�s,
���

�"�z9TestTemporaryDirectory.test_del_on_shutdown_ignore_errorscCs�|���<}dj|d�}t�d|�\}}}|����}|�tj�	|�d|�|�dd�}|�
d|�|�d|�Wd�dS1sCwYdS)	Na�if True:
                import sys
                import tempfile
                import warnings

                def generator():
                    with tempfile.TemporaryDirectory(dir={dir!r}) as tmp:
                        yield tmp
                g = generator()
                sys.stdout.buffer.write(next(g).encode())

                warnings.filterwarnings("always", category=ResourceWarning)
                r�r0r�r�r1r2r3r4)rrKr7r8r9r:r;rrr�test_exit_on_shutdown�s
�
�"�z,TestTemporaryDirectory.test_exit_on_shutdownc	Cs�|���D}|j|dd�}|j}tjdtfdd��tjdtd�~t��Wd�n1s/wY|�	t
j�|�d|�Wd�dS1sKwYdS)	N�)rKr��
ImplicitlyF)�quiet�always)r0r*)
r�rJrr3�ResourceWarningr6r7rr
r�r=r$rsr+rrr�test_warnings_on_cleanup�s 
��
��"�z/TestTemporaryDirectory.test_warnings_on_cleanupcCs$|��}|��|��|��dSr")r�r�rDrrrr|�sz*TestTemporaryDirectory.test_multiple_closecCsb|��}|�}|�tj�|��|�||j�Wd�n1s!wY|�tj�|��dSr")r�rGr=r$rsrCrJr�)rr?rJrrrr��s�z+TestTemporaryDirectory.test_context_managercCs�td�D]k}|dK}|jt|d�d��T|jdddd�}|�0tj|jdd	�D]\}}}|D]
}t�tj�	||�|�q.t�||�q'|�
�Wd�n1sQwY|�tj�|j��Wd�n1sjwYqdS)
Nr
rrrjrBr��r�r�r�F��topdown)
ryrrr�r=�walkrJr�r$r�r�r�rs)rr�r?�rootr�r�rJrrr�
test_modes�s
����z!TestTemporaryDirectory.test_modesc
Cs�tj}zDt|d���zt�||�Wnty1}z|�d|d�d|���WYd}~nd}~wwt�|d�Wt�|�dSWt�|�dSt�|�w)Nr�z chflags() doesn't support flags z#bz: r)	r�TESTFNr�r�r=r!r�r�r�)rr�r��excrrrr%�s"�����z"TestTemporaryDirectory.check_flagsc	Cs�tjtjB}|�|�|jdddd�}|�0tj|jdd�D]\}}}|D]
}t�tj	�
||�|�q%t�||�q|��Wd�n1sHwY|�tj	�
|j��dS)NrBr�rHFrI)r�r#r$r%r�r=rKrJr!r$r�r�r�rs)rr�r?rLr�r�rJrrr�
test_flags�s

�z!TestTemporaryDirectory.test_flags)Nr
r
rWrWrWF)rWrWrW)r(r)r*r�r�r�r�r�rr�skip_unless_symlinkrr r�r�r�r=r)r�cpython_onlyr,r-r<r@rArGr|r�rMr%rPrrrrr��s<
�




0.

 %r��__main__)7rr��ior=rrrTr6�
contextlibr�r�rbr�rrr�test.supportrrrr�r�r5r�r4rr�rz�TestCaserr-rVrmr�r�r��contextmanagerr�r�r�r�r6rArKrVr\r`r�rXrYr�r�r�r(�mainrrrr�<module>sr
23@* 
	 0 .^>M

�

Youez - 2016 - github.com/yon3zu
LinuXploit