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
import mock
from novaclient import client as novaclient
from oslo_config import cfg
from oslo_config import fixture as config_fixture
from oslotest import base as test_base
@ -35,6 +34,10 @@ import ec2api.wsgi
ADMIN_TOKEN = 'admin_token'
DB_SCHEMA = None
config.parse_args([], default_config_files=[])
def skip_not_implemented(test_item):
@ -281,31 +284,24 @@ class ApiTestCase(BaseTestCase):
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 setUpClass(cls):
super(DbTestCase, cls).setUpClass()
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')
def _init_db_schema(self):
global DB_SCHEMA
if not DB_SCHEMA:
engine = db_backend.get_engine()
conn = engine.connect()
migration.db_sync()
cls.DB_SCHEMA = "".join(line
for line in conn.connection.iterdump())
DB_SCHEMA = "".join(line for line in conn.connection.iterdump())
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
class DBItemsAutoCreationTestCase(base.MockOSMixin, base.DbTestCase):
class DBItemsAutoCreationTestCase(base.DbTestCase):
def setUp(self):
super(DBItemsAutoCreationTestCase, self).setUp()