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:
Feodor Tersin 2015-08-19 17:47:05 +03:00
parent 5ee7187465
commit f7fbf1424f
2 changed files with 19 additions and 23 deletions

View File

@ -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)

View File

@ -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()