Repository URL to install this package:
Version:
5.0.6.dev24 ▾
|
3 YÈÛcl( ã @ sL d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl Z ddlZddlZddl ZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd lmZ ddlmZ ejdd ddej ddddejddddgZ!ej"Z"e"j#e! ej$e%Z&da'G dd de(Z)G dd dej*Z+G dd 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_dbzclean.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 e Zd ZdS )ÚTestingExceptionN)Ú__name__Ú __module__Ú__qualname__© r r ú2/usr/lib/python3/dist-packages/workloadmgr/test.pyr H s r c s$ e Zd Zdd Z fddZ ZS )ÚDatabasec C s || _ || _|| _|j | _| jj | jj }|dkrJ|j dkrjd S n tj j tj|}tj j |rjd S |j dtj i}tj|j } tj| }|j W d Q R X |dkrâ| jj }dj dd |jj D | _| jj ntj j tj|} tj|| d S )Nz sqlite://é Ú connectionÚ c s s | ] }|V qd S )Nr )Ú.0Úliner r r ú <genexpr>k s z$Database.__init__.<locals>.<genexpr>)Úsql_connectionÚ sqlite_dbr Z get_engineÚengineÚdisposeÚconnectZ db_versionÚosÚpathÚjoinÚCONFÚ state_pathÚexistsZdb_syncr ZSQLAlchemyBackendZget_connectionÚ contextlibÚclosingZupgrader ZiterdumpÚ_DBÚshutilÚcopyfile)ÚselfZ db_sessionZ db_migrater r r ÚconnZtestdbZconfr Zcleandbr r r Ú__init__N s. zDatabase.__init__c sl t t| j | jdkr@| jj }|jj| j | j | jj n(tjt jjtj| jt jjtj| j d S )Nz sqlite://)Úsuperr ÚsetUpr r r r Z executescriptr) Ú addCleanupr r* r+ r! r" r# r$ r% r r )r, r- )Ú __class__r r r0 q s zDatabase.setUp)r r r r. r0 Ú __classcell__r r )r2 r r L s #r c s e Zd ZdZejjej ejjej ejjej ejje fddZ fddZ dd Zdd d Zdd dZ ZS )ÚTestCasez(Test case base class for all unit tests.c sÌ t t| j tjjdd}yt|}W n tk r@ d}Y nX |dkrTt|d}tjjddksttjjddkr| j t jdj}tjjddks¦tjjddkr¸| j t jd j}t jt tg g d tj | _tjddd tjdd tsttttjjtjtjdatj | _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/t0dtj1dd dS )z;Run before each test method to initialize test environment.ZOS_TEST_TIMEOUTr i, ZOS_STDOUT_CAPTUREÚTrueÚ1ÚstdoutZOS_STDERR_CAPTUREÚstderr)Zdefault_config_filesr z sqlite://ÚdatabaseZsqlite_synchronousF)r r r Zfatal_exception_format_errorsTZ lock_pathr z..Zoslo_policy)ÚgroupN)2r/ r4 r0 r! ÚenvironÚgetÚintÚ ValueErrorÚmaxZ useFixtureÚfixturesZStringStreamÚstreamr Zset_defaultsr$ r ÚutcnowÚstartZset_defaultÚ _DB_CACHEr r r r9 r r r r ZMoxÚstuboutZStubOutForTestingÚstubsr1 ÚresetZ UnsetStubsZUnsetAllZ SmartUnsetAllZ VerifyAllÚinjectedÚ _servicesÚset_overrideÚtempfileÚmkdtempr" r# ÚabspathÚdirnameÚ__file__r )r, Ztest_timeoutr7 r8 )r2 r r r0 sV zTestCase.setUpc s¸ x0| j D ]&}y|j W q tk r, Y qX qW xH| jD ]>}y|j W q: tk rv } ztj| W Y dd}~X q:X q:W x(dd t| j j D D ]}| j |= qW tt| j dS )z:Runs after each test method to tear down test environment.Nc S s g | ]}|d dkr|qS )r Ú_r )r Úkr r r ú <listcomp>Û s z%TestCase.tearDown.<locals>.<listcomp>)rH ÚstopÚAssertionErrorrI ÚkillÚ ExceptionÚLOGÚ exceptionÚlistÚ__dict__Úkeysr/ r4 ÚtearDown)r, ÚxÚexÚkey)r2 r r r\ Ç s zTestCase.tearDownc K s&