HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/test/__pycache__/test_dirdbm.cpython-38.pyc
U


W['�@svdZddlZddlmZddlmZddlmZddlm	Z	ddl
mZGdd	�d	ej�Z
Gd
d�de
�Ze
egZdS)z
Test cases for dirdbm module.
�N)�	b64decode)�unittest)�dirdbm)�rebuild)�FilePathc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�DirDbmTestscCs(t|���|_t�|jj�|_d|_dS)N)�sabcsfoo�s/lalals�s
sbaz)r�mktemp�pathr�open�dbm�items��self�r�:/usr/lib/python3/dist-packages/twisted/test/test_dirdbm.py�setUpszDirDbmTests.setUpcCs2td�}d|j|<d|j|<|�|j|d�dS)Nz//==�a)rr�assertEqual)r�krrr�test_alls

zDirDbmTests.test_allcCs t�d�}d|d<t�t�dS)Nzdirdbm.rebuild.test�valueskey)r�Shelfr)r�srrr�test_rebuildInteraction!s
z#DirDbmTests.test_rebuildInteractioncCs�|j}g}t�}|jD]$\}}|||<|�|�|�|�q|��|jD]$\}}|�||�|�|||�qJz|dWntk
r�YnXds�t	d��|�
�}t|���}t|���}|��t|j�}	|�||dt|�t|�f�|�||dt|�t|�f�|�|	|dt|	�t|�f�|�
�}
|�|
�}|�
�}t|���}
t|���}|��|�||dt|�t|�f�|�||
dt|�t|
�f�|�||d	t|�t|�f�|��|�t|�
��t|���k�ot|���k�ot|�k�odknd
�|�t|�t|��t�|
�|jD]\}}||=|�||d��q@|�t|�
��dd�|�t|���dd
�|�t|���dd�|�t|�dd�dS)NsXXXrz)didn't raise KeyError on non-existent keyz%.keys() output didn't match: %s != %sz'.values() output didn't match: %s != %szitems() didn't match: %s != %sz'.copyTo().keys() didn't match: %s != %sz).copyTo().values() didn't match: %s != %sz(.copyTo().items() didn't match: %s != %sz.clear() failedz3key is still in database, even though we deleted itzdatabase has keyszdatabase has valueszdatabase has items)r�setr�append�add�sortZassertInr�KeyError�AssertionError�keys�values�reprrZcopyTo�clear�
assertTrue�lenZassertNotEqual�shutilZrmtreeZassertNotIn)r�dr#r$r�vZdbkeysZdbvaluesZdbitemsrZcopyPathZd2ZcopykeysZ
copyvaluesZ	copyitemsrrr�test_dbm's�

������
������"
�
�
��
zDirDbmTests.test_dbmcCsJddl}d|jd<|�t|��|j�d��dk�|�t|jjd�dS)Nr�v�k�snokey)�timerr'�abs�getModificationTime�assertRaisesr!)rr0rrr�test_modificationTimers

"z!DirDbmTests.test_modificationTimec	Cs|j�d�}|j�|d�jdd��}|�d�W5QRX|j�d�}|j�|�jdd��}|�d�W5QRX|j�|d�jdd��}|�d�W5QRX|j�d	�jdd��}|�d
�W5QRXt�|jj�}|�|dd�|�|dd�|�	|j�
d��|�	|j�
d��d
S)zJ
        DirDBM: test recovery from directory after a faked crash
        skey1s.rpl�wb)�moderskey2scorrectswrongzaa.newsdeletedz*.newz*.rplN)rZ_encoderZchildr
�writerZDirDBMrZassertFalseZglobChildren)rr�fZk2rrrr�
test_recovery�szDirDbmTests.test_recoverycCs�|�t|jjdd�z|�t|jjdd�Wn&tjk
rR|�|jtj�YnX|�t|jj	d�|�t|jj
d�|�t|jjd�|�t|jjd�|�t|jj
d�dS)zx
        L{dirdbm.DirDBM} operations only support string keys: other types
        should raise a L{TypeError}.
        ��3�2r/N)r3�	TypeErrorr�__setitem__rZFailTestZassertIsInstancerr�__getitem__�__delitem__Zhas_key�__contains__r2rrrr�test_nonStringKeys�szDirDbmTests.test_nonStringKeyscCs:dd�}d|jd<|�|jd|�|�t|jjdd�dS)z4
        Failure path when setting an item.
        cSs|�|�td��dS)Nz
fail to write)Z
setContent�IOError)r�datarrr�
_writeFail�s
z,DirDbmTests.test_failSet.<locals>._writeFailstestsfailkeyZ
_writeFilestest2N)rZpatchr3rCr>)rrErrr�test_failSet�s
zDirDbmTests.test_failSetN)�__name__�
__module__�__qualname__rrrr,r4r9rBrFrrrrrsKrc@seZdZdd�ZdS)�
ShelfTestscCs(t|���|_t�|jj�|_d|_dS)N)rr	r
)sint�)sfloatg(@)stuple)NrK)rrrrrrrrrrrr�szShelfTests.setUpN)rGrHrIrrrrrrJ�srJ)�__doc__r)�base64rZ
twisted.trialrZtwisted.persistedrZtwisted.pythonrZtwisted.python.filepathrZTestCaserrJZ	testCasesrrrr�<module>s(