Repository URL to install this package:
|
Version:
6.0.24-6.0 ▾
|
python3-tvault-contego-el9
/
usr
/
lib
/
python3.9
/
site-packages
/
contego
/
__pycache__
/
test.cpython-39.pyc
|
|---|
a
JrgR ã @ sD d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddl
mZ ddlmZ zddlmZ W n ey¢ ddlmZ Y n0 ejdddd ejd
ddd gZejZe e¡ ejd
ddd ejdddd gZe e¡ZejZe ed¡ e e¡ZdZG dd de Z!G dd de
j"Z"dS )zzBase classes for our unit tests.
Allows overriding of CONF for use of fakes, and some black magic for
inline callbacks.
é N)Úlog)Ú timeutils)ÚcfgZsqlite_clean_dbzclean.sqlitezFile name of clean sqlite db)ÚdefaultÚhelpZ
fake_testsTz$should we use everything for testingZoverride_blockZcinderzWby default block disk_type is mapped to cinder It can be override to lvm by this optionZcontego_staging_dirzVby default uses CONF.instances_path It can be override depending on user configurationZbackendsc @ s e Zd ZdS )ÚTestingExceptionN)Ú__name__Ú
__module__Ú__qualname__© r r ú0/usr/lib/python3.9/site-packages/contego/test.pyr E s r c sH e Zd ZdZ fddZ fddZdd Zdd d
Zdd
dZ Z S )ÚTestCasez(Test case base class for all unit tests.c s t t| ¡ tj dd¡}zt|}W n ty> d}Y n0 |dkr\| t j
|dd¡ | t ¡ ¡ | t ¡ ¡ tj d¡dkstj d¡dkr¼| t
d¡¡j}| t d |¡¡ tj d
¡dksÞtj d
¡dkr| t
d¡¡j}| t d|¡¡ | t ¡ ¡| _tg g d
t ¡ | _| t ¡ ¡| _t ¡ | _t ¡ | _| tj¡ | | jj¡ | | jj¡ | | jj¡ | | jj ¡ g | _!g | _"dS )z;Run before each test method to initialize test environment.ZOS_TEST_TIMEOUTr T)ZgentleZOS_STDOUT_CAPTUREÚTrueÚ1Ústdoutz
sys.stdoutZOS_STDERR_CAPTUREÚstderrz
sys.stderr)Zdefault_config_filesN)#Úsuperr
ÚsetUpÚosÚenvironÚgetÚintÚ
ValueErrorZ
useFixtureÚfixturesZTimeoutZNestedTempfileZTempHomeDirZStringStreamÚstreamZMonkeyPatchZ
FakeLoggerZlog_fixtureÚCONFr ZutcnowÚstartÚmoxZMoxÚstuboutZStubOutForTestingZstubsZ
addCleanupÚresetZ
UnsetStubsZUnsetAllZ
SmartUnsetAllZ VerifyAllÚinjectedÚ _services)ÚselfZtest_timeoutr r ©Ú __class__r r r L sF
ÿþÿþ
zTestCase.setUpc s¬ | j D ]$}z| ¡ W q ty( Y q0 q| jD ]@}z| ¡ W q2 typ } zt |¡ W Y d}~q2d}~0 0 q2dd t| j
¡ D D ]}| j |= qtt|
¡ dS )z:Runs after each test method to tear down test environment.Nc S s g | ]}|d dkr|qS )r Ú_r )Ú.0Úkr r r Ú
<listcomp> ó z%TestCase.tearDown.<locals>.<listcomp>)r ÚstopÚAssertionErrorr! ÚkillÚ ExceptionÚLOGÚ exceptionÚlistÚ__dict__Úkeysr r
ÚtearDown)r" ÚxÚexÚkeyr# r r r3 { s
zTestCase.tearDownc K s" | ¡ D ]\}}t ||¡ qdS )z#Override CONF variables for a test.N)Úitemsr Zset_override)r" Úkwr' Úvr r r Úflags s zTestCase.flagsNc K sX |r|pt ¡ j}| d|¡ | dd| ¡ tjjf i |¤}| ¡ | j |¡ |S )NÚhostZbinaryz
contego-%s)
ÚuuidZuuid4ÚhexÚ
setdefaultZserviceZServiceZcreater r! Úappend)r" Únamer; ÚkwargsZsvcr r r Ú
start_service s zTestCase.start_serviceFçü©ñÒMbP?c
s fdd}t ¡ }t ¡ }||krP|| }|| } |d|| d |D ]ª}
|
}|
}z tt|t| }
|
|k}W n ttfy¢ d}Y n0 t|drÆt|drÆ| ||¡ qTd||fv rÖqTqT|râ|râqTqT||krT|d|
||d qTd
S )aW Assert two dicts are equivalent.
This is a 'deep' match in the sense that it handles nested
dictionaries appropriately.
NOTE:
If you don't care (or don't know) a given value, you can specify
the string DONTCARE as the value. This will cause that dict-item
to be skipped.
c s, t }t }d| ||d }t|d S )Nz>Dictionaries do not match. %(msg)s d1: %(d1str)s d2: %(d2str)s)ÚmsgÚd1strÚd2str)Ústrr+ )rD rE rF Zbase_msg©Úd1Úd2r r Úraise_assertion± s
ÿÿz1TestCase.assertDictMatch.<locals>.raise_assertionzDKeys in d1 and not d2: %(d1only)s. Keys in d2 and not d1: %(d2only)s)Úd1onlyÚd2onlyFr2 ZDONTCAREz6d1['%(key)s']=%(d1value)s != d2['%(key)s']=%(d2value)s)r6 Úd1valueÚd2valueN)Úsetr2 ÚabsÚfloatr Ú TypeErrorÚhasattrÚassertDictMatch)r" rI rJ Zapprox_equalZ tolerancerK Zd1keysZd2keysrL rM r6 rN rO ÚerrorZwithin_tolerancer rH r rU £ s>