Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_dbm_dumb.cpython-310.opt-1.pyc

o

0�i�*�@s�dZddlZddlZddlZddlZddlZddlZddlmZ	ddl
mZddlm
Z
ddlmZe
jZdd�ZGdd	�d	ej�Zed
krLe��dSdS)zATest script for the dumbdbm module
   Original by Roger E. Masse
�N)�support)�	os_helper)�partialc	Cs2dD]}z	t�t|�WqtyYqwdS)N��.dir�.dat�.bak)�os�unlink�_fname�OSError)Zext�r
�9/opt/alt/python310/lib64/python3.10/test/test_dbm_dumb.py�
_delete_filess��rc@s&eZdZddddddddd	d
ddd
dd�d�diZdd�Ze�ee	d�d�dd��Z
dd�Zdd�Zdd�Z
dd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Zd>d?�Zd@dA�Ze�e j!dB�dCdD��Z"dEdF�Z#dGdH�Z$dIS)J�DumbDBMTestCase�0��asPython:�bsProgramming�csthe�dsway�fsGuido�gsintended�ü�utf-8�!cCspt�t�td���%}|�t|���g�|jD]	}|j|||<q|�	|�Wd�dS1s1wYdS)N�c)
�
contextlib�closing�dumbdbm�openr�assertEqual�list�keys�_dict�read_helper)�self�f�keyr
r
r�test_dumbdbm_creation%s
"�z%DumbDBMTestCase.test_dumbdbm_creation�umaskztest needs os.umask()c	Cs�zt�d�}t�tdd�}|��Wt�|�nt�|�wd}tjdkr'd}ddl}t�td�}|�|�	|j
�|�t�td	�}|�|�	|j
�|�dS)
N�ri�i��posixi�rrr)r	r*rr r�close�name�statr!�S_IMODE�st_mode)r&Z	old_umaskr'Z
expected_moder/�str
r
r�test_dumbdbm_creation_mode,s


z*DumbDBMTestCase.test_dumbdbm_creation_modecCs6t�t�}d|d<|�|dd�|��|��dS)Nrr)rr rr!r-�r&r'r
r
r�test_close_twiceAs

z DumbDBMTestCase.test_close_twicecCs�|��t�t�td���)}d|jd<|d<|�|�|�|�	dd�d�|�|dd�Wd�dS1s9wYdS)N�wsindentedr�xxx�foo)
�init_dbrrrr rr$r%r!�
setdefaultr4r
r
r�test_dumbdbm_modificationHs
"�z)DumbDBMTestCase.test_dumbdbm_modificationc	Cs2|��t�t�td����}|�|�|�tjd��d|d<Wd�n1s)wY|�tjd��|d=Wd�n1sCwY|�	|�
d�|jd�|�	|�
dd�d�|�|�
d��|�
t��|dWd�n1szwYWd�dSWd�dS1s�wYdS)N�rz'The database is opened for reading only�xrrr7r8)r9rrrr rr%�assertRaisesRegex�errorr!�getr$ZassertIsNone�assertRaises�KeyErrorr4r
r
r�test_dumbdbm_readQs,
�
���
��"�z!DumbDBMTestCase.test_dumbdbm_readcCsH|��t�t�t���}|�|�}Wd�dS1swYdS�N)r9rrrr r�keys_helper)r&r'r#r
r
r�test_dumbdbm_keysbs"�z!DumbDBMTestCase.test_dumbdbm_keyscCsJt�t�t���}d|d<|�d|�Wd�dS1swYdS)N�hello�1)rrrr r�assertInr4r
r
r�test_write_containsgs"�z#DumbDBMTestCase.test_write_containscCs�t�t�t���}d|d<d|d<Wd�n1swYt�t�t���}|�|dd�Wd�dS1s<wYdS)NrGrH�hello2)rrrr rr!r4r
r
r�test_write_write_readls
�"�z%DumbDBMTestCase.test_write_write_readcCs\|��t�t�td���}|�|d|jd�d��Wd�dS1s'wYdS)Nr<rr)	r9rrrr rr!r$�encoder4r
r
r�
test_str_readts"�zDumbDBMTestCase.test_str_readcCs�|��t�t�t���}d|d<d|d<Wd�n1swYt�t�td���(}|�d|�|�|d�d�|j	d�d��|�|dd�Wd�dS1sXwYdS)	Nrr�a�1r<rrHr)
r9rrrr rrIr!rMr$r4r
r
r�test_str_write_containsys
��"�z'DumbDBMTestCase.test_str_write_containscCst�t�t���}d|d<d|d<Wd�n1swYt�tdd��}|��}Wd�n1s7wYtjdkrH|�	dd	�}n|�	d	d�}t�tdd
��
}|�
|�Wd�n1sfwYt�t�}|�|dd�|�|dd�dS)NrGrHrK�2r�rb�
�
s
�wb)rrrr r�io�readr	�linesep�replace�writer!)r&r'�file�datar
r
r�test_line_endings�s 
�
�
�
z!DumbDBMTestCase.test_line_endingscCs0|�|�}|jD]
}|�|j|||�qdSrD)rEr$r!)r&r'r#r(r
r
rr%�s

�zDumbDBMTestCase.read_helpercCsRt�t�td���}|jD]	}|j|||<q
Wd�dS1s"wYdS�N�n)rrrr rr$�r&r'�kr
r
rr9�s

�"�zDumbDBMTestCase.init_dbcCs*t|���}t|j���}|�||�|SrD)�sortedr#r$r!)r&r'r#Zdkeysr
r
rrE�szDumbDBMTestCase.keys_helperc		Csddl}i}td�D]�}t�t�t���?}td�D]2}|�d�}|��dkr1||vr0||=||=q|�d�|�d�}|||<|||<|�	|||�qWd�n1sVwYt�t�t���}t
dd	�|��D��}t
|���}|�	||�Wd�n1s�wYq
dS)
Nr��dZ
abcdefghijklmg�������?)rrri'css"�|]\}}|�d�|fVqdS)zlatin-1N)rM)�.0rb�vr
r
r�	<genexpr>�s� z.DumbDBMTestCase.test_random.<locals>.<genexpr>)�random�rangerrrr rZchoiceZ	randranger!rc�items)	r&ri�dZdummyr'rbrgZexpectedZgotr
r
r�test_random�s0
���
���zDumbDBMTestCase.test_randomcCs�t�td��}d|d<Wd�n1swYt�td��}|�t|���dg�Wd�n1s6wY|�tj��
|��Wd�dS1sQwYdS)Nrzcontext managerzdumbdbm context managerr<sdumbdbm context manager)rr rr!r"r#rAr?)r&�dbr
r
r�test_context_manager�s
��
"�z$DumbDBMTestCase.test_context_managerc	Cs�t�td�}|��ttj|�ttj|d�ttj|�ttj	|�fD]%}|�
tj��}|d�Wd�n1s8wY|�t
|j�d�q!t�d�t�d�t�d�tfD]%}|�
tj��}||�Wd�n1smwY|�t
|j�d�qVdS)Nr�b�testz"DBM object has already been closedr#Ziterkeysrk)rr rr-r�operator�delitem�setitem�getitem�containsrAr?r!�strZ	exception�methodcaller�len)r&r'Zmeth�cmr
r
r�test_check_closed�s2


�
���
���z!DumbDBMTestCase.test_check_closedcCs�t�td��}|jD]	}|j|||<q
Wd�n1swYt�td��}|�|��g�Wd�dS1s=wYdSr_)rr rr$r!r#rar
r
r�test_create_new�s
��"�zDumbDBMTestCase.test_create_newc
Cs�ttdddd��
}|�d�Wd�n1swYt���;}|�t��t�t��}Wd�n1s9wYWd�n1sHwY|�|�	�d�Wd�dS1s`wYdS)Nrr6r)�encodingzstr(print('Hacked!')), 0
�)
r rr[rZcaptured_stdoutrA�
ValueErrorrr!�getvalue)r&�stream�stdoutr'r
r
r�	test_eval�s�
���"�zDumbDBMTestCase.test_evalc	CsvdD]6}t�|�t��t�t|�Wd�n1swY|�tj�	td��|�tj�	td��qdS)N�r<r6rr)
rrA�FileNotFoundErrorrr r�assertFalser	�path�exists)r&�valuer
r
r�test_missing_data�s��z!DumbDBMTestCase.test_missing_datac	Cs�t�td��}Wd�n1swYt�td�dD]3}|�t��t�t|�Wd�n1s7wY|�tj�	td��|�tj�	td��qdS)Nr`rr�r)
rr rr	r
rAr�r�r�r�)r&r'r�r
r
r�test_missing_index�s���z"DumbDBMTestCase.test_missing_indexc	CsFdD]}|�td��t�t|�Wd�n1swYqdS)N)�xZrfNz)Flag must be one of 'r', 'w', 'c', or 'n')r>rrr r)r&�flagr
r
r�test_invalid_flags����z!DumbDBMTestCase.test_invalid_flagc	Cs,t����}tj�|d�}t�|d��}|�t|�	��g�|j
D]	}|j
|||<q Wd�n1s4wYt�|dtj
�t�|dtj
�t�|tj
tjB�t�|d��}|�t|�	��t|j
��|��Wd�n1swwYWd�dSWd�dS1s�wYdS)Nrnr`rrr<)rZtemp_dirr	r��joinrr r!r"r#r$�chmodr/�S_IRUSR�S_IXUSRrcr-)r&�dirZfnamer'r(r
r
r�test_readonly_filess$

��
��	"�z#DumbDBMTestCase.test_readonly_filesz*requires OS support of non-ASCII encodingscCs�tj}dD]}|�tj||�qt�|d��}d|d<Wd�n1s&wY|�tj�	|d��|�tj�	|d��t�|d��#}|�
t|���dg�|�d|v�|�
|dd�Wd�dS1smwYdS)Nrrsvalueskeyrrr<)
r�TESTFN_NONASCIIZ
addCleanupr
rr Z
assertTruer	r�r�r!r"r#)r&�filename�suffixrnr
r
r�test_nonascii_filenames
�"�z&DumbDBMTestCase.test_nonascii_filenamecC�
t�dSrD�r�r&r
r
r�tearDown)�
zDumbDBMTestCase.tearDowncCr�rDr�r�r
r
r�setUp,r�zDumbDBMTestCase.setUpN)%�__name__�
__module__�__qualname__rMr$r)�unittestZ
skipUnless�hasattrr	r3r5r;rCrFrJrLrNrQr^r%r9rErmror{r|r�r�r�r�r�rr�r�r�r�r
r
r
rrsP
�

	
	
�

r�__main__)�__doc__rrWrrr	r/r�Zdbm.dumbZdumbrrqrZtest.supportr�	functoolsrZTESTFNrrZTestCaserr��mainr
r
r
r�<module>s&�