Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_dbm_dumb.cpython-39.pyc

a

��gt*�@s�dZddlZddlZddlZddlZddlZddlZddlmZ	ddl
mZddlm
Z
ejZdd�ZGdd�dej�Zed	kr�e��dS)
zATest script for the dumbdbm module
   Original by Roger E. Masse
�N)�support)�partialc	Cs4dD]*}zt�t|�Wqty,Yq0qdS)N��.dir�.dat�.bak)�os�unlink�_fname�OSError)�ext�r
�./usr/local/lib/python3.9/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�!cCsnt�t�td���H}|�t|���g�|jD]}|j|||<q.|�	|�Wd�n1s`0YdS)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�z.t�d�}t�tdd�}|��Wt�|�nt�|�0d}tjdkrNd}ddl}t�td�}|�|�	|j
�|�t�td	�}|�|�	|j
�|�dS)
N�ri�i��posixi�rrr)rr*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 r
r!r-�r&r'r
r
r�test_close_twice?s

z DumbDBMTestCase.test_close_twicecCs~|��t�t�td���P}d|jd<|d<|�|�|�|�	dd�d�|�|dd�Wd�n1sp0YdS)N�wsindentedr�xxx�foo)
�init_dbrrrr r
r$r%r!�
setdefaultr4r
r
r�test_dumbdbm_modificationFs
z)DumbDBMTestCase.test_dumbdbm_modificationc	Cs"|��t�t�td����}|�|�|�tjd��d|d<Wd�n1sR0Y|�tjd��|d=Wd�n1s�0Y|�	|�
d�|jd�|�	|�
dd�d�|�|�
d��|�
t��|dWd�n1s�0YWd�n1�s0YdS)N�rz'The database is opened for reading only�xrrr7r8)r9rrrr r
r%�assertRaisesRegex�errorr!�getr$ZassertIsNone�assertRaises�KeyErrorr4r
r
r�test_dumbdbm_readOs 
�&�$z!DumbDBMTestCase.test_dumbdbm_readcCsF|��t�t�t���}|�|�}Wd�n1s80YdS�N)r9rrrr r
�keys_helper)r&r'r#r
r
r�test_dumbdbm_keys`sz!DumbDBMTestCase.test_dumbdbm_keyscCsHt�t�t���$}d|d<|�d|�Wd�n1s:0YdS)N�hello�1)rrrr r
�assertInr4r
r
r�test_write_containsesz#DumbDBMTestCase.test_write_containscCs�t�t�t��� }d|d<d|d<Wd�n1s60Yt�t�t��� }|�|dd�Wd�n1sv0YdS)NrGrH�hello2)rrrr r
r!r4r
r
r�test_write_write_readjs
&z%DumbDBMTestCase.test_write_write_readcCsZ|��t�t�td���,}|�|d|jd�d��Wd�n1sL0YdS)Nr<rr)	r9rrrr r
r!r$�encoder4r
r
r�
test_str_readrszDumbDBMTestCase.test_str_readcCs�|��t�t�t��� }d|d<d|d<Wd�n1s>0Yt�t�td���N}|�d|�|�|d�d�|j	d�d��|�|dd�Wd�n1s�0YdS)	Nrr�a�1r<rrHr)
r9rrrr r
rIr!rMr$r4r
r
r�test_str_write_containsws&�z'DumbDBMTestCase.test_str_write_containscCst�t�t��� }d|d<d|d<Wd�n1s60Yt�tdd��}|��}Wd�n1sn0Ytjdkr�|�	dd	�}n|�	d	d�}t�tdd
��}|�
|�Wd�n1s�0Yt�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_helpercCsPt�t�td���*}|jD]}|j|||<qWd�n1sB0YdS�N�n)rrrr r
r$�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]d}|�d�}|��dkrd||vr�||=||=q4|�d�|�d�}|||<|||<|�	|||�q4Wd�n1s�0Yt�t�t���>}t
dd	�|��D��}t
|���}|�	||�Wd�q1�s0YqdS)
Nr��dZ
abcdefghijklmg�������?)rrri'css |]\}}|�d�|fVqdS)zlatin-1N)rM)�.0rb�vr
r
r�	<genexpr>�rz.DumbDBMTestCase.test_random.<locals>.<genexpr>)�random�rangerrrr r
�choice�	randranger!rc�items)	r&ri�d�dummyr'rbrgZexpectedZgotr
r
r�test_random�s$
0zDumbDBMTestCase.test_randomcCs�t�td��}d|d<Wd�n1s*0Yt�td��&}|�t|���dg�Wd�n1sl0Y|�tj��|��Wd�n1s�0YdS)Nrzcontext managerzdumbdbm context managerr<sdumbdbm context manager)rr r
r!r"r#rAr?)r&�dbr
r
r�test_context_manager�s&4z$DumbDBMTestCase.test_context_managerc	Cs�t�td�}|��ttj|�ttj|d�ttj|�ttj	|�fD]J}|�
tj��}|d�Wd�n1sp0Y|�t
|j�d�qBt�d�t�d�t�d�tfD]J}|�
tj��}||�Wd�n1s�0Y|�t
|j�d�q�dS)Nr�b�testz"DBM object has already been closedr#Ziterkeysrm)rr r
r-r�operator�delitem�setitem�getitem�containsrAr?r!�str�	exception�methodcaller�len)r&r'�meth�cmr
r
r�test_check_closed�s,


�&��&�z!DumbDBMTestCase.test_check_closedcCs�t�td��*}|jD]}|j|||<qWd�n1s<0Yt�td�� }|�|��g�Wd�n1sx0YdSr_)rr r
r$r!r#rar
r
r�test_create_new�s

.zDumbDBMTestCase.test_create_newc
Cs�ttdd��}|�d�Wd�n1s.0Yt���t}|�t��:t�t��}Wd�n1sn0YWd�n1s�0Y|�|�	�d�Wd�n1s�0YdS)Nrr6zstr(print('Hacked!')), 0
�)
r r
r[rZcaptured_stdoutrA�
ValueErrorrr!�getvalue)r&�stream�stdoutr'r
r
r�	test_eval�s(
<zDumbDBMTestCase.test_evalc	CsvdD]l}t�|�t��t�t|�Wd�n1s:0Y|�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�n1s"0Yt�td�dD]f}|�t��t�t|�Wd�n1sn0Y|�tj�	td��|�tj�	td��q>dS)Nr`rr�r)
rr r
rr	rAr�r�r�r�)r&r'r�r
r
r�test_missing_index�s*z"DumbDBMTestCase.test_missing_indexc	CsFdD]<}|�td��t�t|�Wd�q1s60YqdS)N)�xZrfNz)Flag must be one of 'r', 'w', 'c', or 'n')r>r�rr r
)r&�flagr
r
r�test_invalid_flags
�z!DumbDBMTestCase.test_invalid_flagc	Cst����}tj�|d�}t�|d��>}|�t|�	��g�|j
D]}|j
|||<q@Wd�n1sh0Yt�|dtj
�t�|dtj
�t�|tj
tjB�t�|d��2}|�t|�	��t|j
��|��Wd�n1s�0YWd�n1�s0YdS)Nrqr`rrr<)rZtemp_dirrr��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||�q
t�|d��}d|d<Wd�n1sL0Y|�tj�	|d��|�tj�	|d��t�|d��D}|�
t|���dg�|�d|v�|�
|dd�Wd�n1s�0YdS)Nrrsvalueskeyrrr<)
r�TESTFN_NONASCIIZ
addCleanupr	rr Z
assertTruerr�r�r!r"r#)r&�filename�suffixrqr
r
r�test_nonascii_filenames&z&DumbDBMTestCase.test_nonascii_filenamecCs
t�dSrD�r�r&r
r
r�tearDown'szDumbDBMTestCase.tearDowncCs
t�dSrDr�r�r
r
r�setUp*szDumbDBMTestCase.setUpN)%�__name__�
__module__�__qualname__rMr$r)�unittestZ
skipUnless�hasattrrr3r5r;rCrFrJrLrNrQr^r%r9rErprrr�r�r�r�r�r�r�rr�r�r�r�r
r
r
rrsN
�

	
	
�

r�__main__)�__doc__rrWrurr/r�Zdbm.dumbZdumbrrtr�	functoolsrZTESTFNr
rZTestCaserr��mainr
r
r
r�<module>s 

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists