Commonize config usage for base test classes
Derive DbTestCase from BaseTestClass to use config fixture as a preffered way for such things. Initialize full set of config options for all tests. This leaded to some reworking of db initialization in DBTestCase. Change-Id: Ibec8406f141a74c6f42f6c9d502ced0008ae0214
This commit is contained in:
parent
5ee7187465
commit
f7fbf1424f
@ -19,7 +19,6 @@ from cinderclient import client as cinderclient
|
|||||||
from glanceclient import client as glanceclient
|
from glanceclient import client as glanceclient
|
||||||
import mock
|
import mock
|
||||||
from novaclient import client as novaclient
|
from novaclient import client as novaclient
|
||||||
from oslo_config import cfg
|
|
||||||
from oslo_config import fixture as config_fixture
|
from oslo_config import fixture as config_fixture
|
||||||
from oslotest import base as test_base
|
from oslotest import base as test_base
|
||||||
|
|
||||||
@ -35,6 +34,10 @@ import ec2api.wsgi
|
|||||||
|
|
||||||
|
|
||||||
ADMIN_TOKEN = 'admin_token'
|
ADMIN_TOKEN = 'admin_token'
|
||||||
|
DB_SCHEMA = None
|
||||||
|
|
||||||
|
|
||||||
|
config.parse_args([], default_config_files=[])
|
||||||
|
|
||||||
|
|
||||||
def skip_not_implemented(test_item):
|
def skip_not_implemented(test_item):
|
||||||
@ -281,31 +284,24 @@ class ApiTestCase(BaseTestCase):
|
|||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
class DbTestCase(test_base.BaseTestCase):
|
class DbTestCase(BaseTestCase):
|
||||||
|
|
||||||
DB_SCHEMA = None
|
def setUp(self):
|
||||||
|
super(DbTestCase, self).setUp()
|
||||||
|
self.configure(connection='sqlite://', group='database')
|
||||||
|
self.configure(sqlite_synchronous=False, group='database')
|
||||||
|
self._init_db_schema()
|
||||||
|
engine = db_backend.get_engine()
|
||||||
|
conn = engine.connect()
|
||||||
|
conn.connection.executescript(DB_SCHEMA)
|
||||||
|
self.addCleanup(engine.dispose)
|
||||||
|
|
||||||
@classmethod
|
def _init_db_schema(self):
|
||||||
def setUpClass(cls):
|
global DB_SCHEMA
|
||||||
super(DbTestCase, cls).setUpClass()
|
if not DB_SCHEMA:
|
||||||
conf = cfg.CONF
|
|
||||||
try:
|
|
||||||
config.parse_args([], default_config_files=[])
|
|
||||||
conf.set_override('connection', 'sqlite://', group='database')
|
|
||||||
conf.set_override('sqlite_synchronous', False, group='database')
|
|
||||||
|
|
||||||
engine = db_backend.get_engine()
|
engine = db_backend.get_engine()
|
||||||
conn = engine.connect()
|
conn = engine.connect()
|
||||||
migration.db_sync()
|
migration.db_sync()
|
||||||
cls.DB_SCHEMA = "".join(line
|
DB_SCHEMA = "".join(line for line in conn.connection.iterdump())
|
||||||
for line in conn.connection.iterdump())
|
|
||||||
engine.dispose()
|
engine.dispose()
|
||||||
finally:
|
|
||||||
conf.reset()
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(DbTestCase, self).setUp()
|
|
||||||
engine = db_backend.get_engine()
|
|
||||||
engine.dispose()
|
|
||||||
conn = engine.connect()
|
|
||||||
conn.connection.executescript(self.DB_SCHEMA)
|
|
||||||
|
@ -24,7 +24,7 @@ from ec2api.tests.unit import base
|
|||||||
from ec2api.tests.unit import fakes
|
from ec2api.tests.unit import fakes
|
||||||
|
|
||||||
|
|
||||||
class DBItemsAutoCreationTestCase(base.MockOSMixin, base.DbTestCase):
|
class DBItemsAutoCreationTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(DBItemsAutoCreationTestCase, self).setUp()
|
super(DBItemsAutoCreationTestCase, self).setUp()
|
||||||
|
Loading…
Reference in New Issue
Block a user