a }|g @ s d Z ddlZddlZddlZddlZddlmZ ddlZddlmZ ddl m Z ddlmZ zddlZW n ey~ dZY n0 dZG d d d e jZG dd de jZed kreeejdd eg dS )z!Tests for certbot._internal.lock. N)mock)errors)os)utilFTc @ s$ e Zd ZdZedd Zdd ZdS )LockDirTestz*Tests for certbot._internal.lock.lock_dir.c O s ddl m} ||i |S )Nr )lock_dir)certbot._internal.lockr )clsargskwargsr r E/usr/lib/python3.9/site-packages/certbot/_internal/tests/lock_test.py_call s zLockDirTest._callc C s8 t | jtj| j| j}tj | jd}t || d S )Nz .certbot.lock) functoolspartialassertRaisesr LockErrorr tempdirr pathjoin test_util lock_and_call)self assert_raises lock_pathr r r test_it s zLockDirTest.test_itN)__name__ __module____qualname____doc__classmethodr r r r r r r s r c s~ e Zd ZdZedd Z fddZdd Zdd Zd d Z dd Z dd Ze ddd Zdd Zdd Zdd Z ZS )LockFileTestz*Tests for certbot._internal.lock.LockFile.c O s ddl m} ||i |S )Nr )LockFile)r r" )r r r r" r r r r ( s zLockFileTest._callc s t tj| jd| _d S )Nz test.lock)supersetUpr r r r r )r __class__r r r$ - s zLockFileTest.setUpc C sP t j| j| jfd}| | |jdks2J tj | jsDJ | d S )N)targetr r )multiprocessingZProcessr r startr Zexitcoder r existstest_removed)r childr r r test_acquire_without_deletion1 s z*LockFileTest.test_acquire_without_deletionc C s* t | jtj| j| j}t|| j d S N) r r r r r r r r r )r r r r r test_contention= s zLockFileTest.test_contentionc C sH | | j}z,t|}| || d|v s.J W | n | 0 d S )NZacquired)r r repr_test_repr_commonrelease)r lock_fileZlocked_reprr r r test_locked_reprB s zLockFileTest.test_locked_reprc C s8 | | j}| t|}| || d|v s4J d S )NZreleased)r r r2 r0 r1 )r r3 Z released_reprr r r test_released_reprK s zLockFileTest.test_released_reprc C s" |j j|v sJ | j|v sJ d S r. )r&