Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
workloadmgr / usr / lib / python3 / dist-packages / workloadmgr / __pycache__ / test.cpython-36.pyc
Size: Mime:
3

YÈÛcl(ã@sLdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
Z
ddlZddlZddl
ZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZejdd
ddej ddddejddddgZ!ej"Z"e"j#e!ƒej$e%ƒZ&da'Gdd„de(ƒZ)Gdd„dej*ƒZ+Gdd„dej,ƒZ,dS)zzBase classes for our unit tests.

Allows overriding of CONF for use of fakes, and some black magic for
inline callbacks.

éN)Úmox)Úimpl_sqlalchemy)Úcfg)Ú	migration)Úsession)Úlog)Ú	timeutils)Úservice)Úconf_fixtureÚsqlite_clean_dbzclean.sqlitezFile name of clean sqlite db)ÚdefaultÚhelpZ
fake_testsTz$should we use everything for testingÚpolicy_filez"workloadmgr/tests/unit/policy.jsonzlocation for policy filec@seZdZdS)ÚTestingExceptionN)Ú__name__Ú
__module__Ú__qualname__©rrú2/usr/lib/python3/dist-packages/workloadmgr/test.pyrHsrcs$eZdZdd„Z‡fdd„Z‡ZS)ÚDatabasec
Cs||_||_||_|jƒ|_|jjƒ|jjƒ}|dkrJ|jƒdkrjdSn tj	j
tj|ƒ}tj	j
|ƒrjdS|jƒdtji}tj|ƒjƒ}	tj|	ƒ}|jƒWdQRX|dkrâ|jjƒ}dj
dd„|jjƒDƒƒ|_|jjƒntj	j
tj|ƒ}
tj||
ƒdS)Nz	sqlite://éÚ
connectionÚcss|]
}|VqdS)Nr)Ú.0Úlinerrrú	<genexpr>ksz$Database.__init__.<locals>.<genexpr>)Úsql_connectionÚ	sqlite_dbrZ
get_engineÚengineÚdisposeÚconnectZ
db_versionÚosÚpathÚjoinÚCONFÚ
state_pathÚexistsZdb_syncrZSQLAlchemyBackendZget_connectionÚ
contextlibÚclosingZupgraderZiterdumpÚ_DBÚshutilÚcopyfile)ÚselfZ
db_sessionZ
db_migraterrrÚconnZtestdbZconfrZcleandbrrrÚ__init__Ns.




zDatabase.__init__csltt|ƒjƒ|jdkr@|jjƒ}|jj|jƒ|j	|jj
ƒn(tjt
jjtj|jƒt
jjtj|jƒƒdS)Nz	sqlite://)ÚsuperrÚsetUprrr rZ
executescriptr)Ú
addCleanuprr*r+r!r"r#r$r%rr)r,r-)Ú	__class__rrr0qs

zDatabase.setUp)rrrr.r0Ú
__classcell__rr)r2rrLs#rcs„eZdZdZejjejƒƒejjej	ƒƒejjej
ƒƒejjeƒ‡fdd„ƒƒƒƒZ‡fdd„Z
dd„Zdd	d
„Zdd
d„Z‡ZS)ÚTestCasez(Test case base class for all unit tests.csÌtt|ƒjƒtjjddƒ}yt|ƒ}Wntk
r@d}YnX|dkrTt|dƒ}tjjdƒdksttjjdƒdkr†|j	t
jdƒƒj}tjjdƒdks¦tjjdƒdkr¸|j	t
jd	ƒƒj}t
jtƒtggd
tjƒ|_tjddd
ƒtjddƒtsttttjjtjtjdatjƒ|_tjƒ|_ |j!tj"ƒ|j!|jj#ƒ|j!|j j$ƒ|j!|j j%ƒ|j!|jj&ƒg|_'g|_(tj)ddƒtj)dt*j+ƒƒtj)dtj,j-tj,j.tj,j-tj,j/t0ƒdƒƒtj1ƒdddS)z;Run before each test method to initialize test environment.ZOS_TEST_TIMEOUTri,ZOS_STDOUT_CAPTUREÚTrueÚ1ÚstdoutZOS_STDERR_CAPTUREÚstderr)Zdefault_config_filesrz	sqlite://ÚdatabaseZsqlite_synchronousF)rrrZfatal_exception_format_errorsTZ	lock_pathrz..Zoslo_policy)ÚgroupN)2r/r4r0r!ÚenvironÚgetÚintÚ
ValueErrorÚmaxZ
useFixtureÚfixturesZStringStreamÚstreamr
Zset_defaultsr$rÚutcnowÚstartZset_defaultÚ	_DB_CACHErrrr9rrrrZMoxÚstuboutZStubOutForTestingÚstubsr1ÚresetZ
UnsetStubsZUnsetAllZ
SmartUnsetAllZ	VerifyAllÚinjectedÚ	_servicesÚset_overrideÚtempfileÚmkdtempr"r#ÚabspathÚdirnameÚ__file__r)r,Ztest_timeoutr7r8)r2rrr0sV







zTestCase.setUpcs¸x0|jD]&}y|jƒWqtk
r,YqXqWxH|jD]>}y|jƒWq:tk
rv}ztj|ƒWYdd}~Xq:Xq:Wx(dd„t|j	j
ƒƒDƒD]}|j	|=q–Wtt|ƒj
ƒdS)z:Runs after each test method to tear down test environment.NcSsg|]}|ddkr|‘qS)rÚ_r)rÚkrrrú
<listcomp>Ûsz%TestCase.tearDown.<locals>.<listcomp>)rHÚstopÚAssertionErrorrIÚkillÚ	ExceptionÚLOGÚ	exceptionÚlistÚ__dict__Úkeysr/r4ÚtearDown)r,ÚxÚexÚkey)r2rrr\Çs
 zTestCase.tearDowncKs&x |jƒD]\}}tj||ƒq
WdS)z#Override CONF variables for a test.N)Úitemsr$rJ)r,ÚkwrQÚvrrrÚflagsßszTestCase.flagsNcKsT|r|ptjƒj}|jd|ƒ|jdd|ƒtjjf|Ž}|jƒ|jj	|ƒ|S)NÚhostÚbinaryzworkloadmgr-%s)
ÚuuidZuuid4ÚhexÚ
setdefaultr	ZServiceÚcreaterCrIÚappend)r,ÚnamerdÚkwargsZsvcrrrÚ
start_serviceäszTestCase.start_serviceFçü©ñÒMbP?cs
‡‡fdd„}tˆjƒƒ}tˆjƒƒ}||krP||}||}	|d||	dœƒx´|D]¬}
ˆ|
}ˆ|
}y tt|ƒt|ƒƒ}
|
|k}Wnttfk
r¦d}YnXt|dƒrÊt|dƒrÊ|j||ƒqVd||fkrÚqVqV|ræ|ræqVqV||krV|d|
||d	œƒqVWd
S)aWAssert 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.

        cs,tˆƒ}tˆƒ}d|||dœ}t|ƒ‚dS)Nz>Dictionaries do not match. %(msg)s d1: %(d1str)s d2: %(d2str)s)ÚmsgÚd1strÚd2str)ÚstrrT)rorprqZbase_msg)Úd1Úd2rrÚraise_assertionûs
z1TestCase.assertDictMatch.<locals>.raise_assertionzDKeys in d1 and not d2: %(d1only)s. Keys in d2 and not d1: %(d2only)s)Úd1onlyÚd2onlyFr[ZDONTCAREz6d1['%(key)s']=%(d1value)s != d2['%(key)s']=%(d2value)s)r_Úd1valueÚd2valueN)Úsetr[ÚabsÚfloatr>Ú	TypeErrorÚhasattrÚassertDictMatch)r,rsrtZapprox_equalZ	toleranceruZd1keysZd2keysrvrwr_rxryÚerrorZwithin_tolerancer)rsrtrrîs6


zTestCase.assertDictMatch)N)Frn)rrrÚ__doc__ÚpytestZmarkZusefixturesr@ZNestedTempfileZTempHomeDirZ
FakeLoggerrDr0r\rcrmrr3rr)r2rr4~sC

r4)-rr'Ú	functoolsr!r*rKrfr@Zmox3rrEZunittestr‚Z
sqlalchemyÚsaZtaskflow.persistence.backendsrZoslo_configrZworkloadmgr.dbrZ*workloadmgr.openstack.common.db.sqlalchemyrÚworkloadmgr.openstack.commonrÚloggingrÚworkloadmgrr	Zworkloadmgr.tests.unitr
ZStrOptZBoolOptZ	test_optsr$Z
register_optsÚ	getLoggerrrWrDrVrZFixturerr4rrrrÚ<module>sH


2