From f7fbf1424fe59c34ba7c13e2e3210497f33319f4 Mon Sep 17 00:00:00 2001 From: Feodor Tersin Date: Wed, 19 Aug 2015 17:47:05 +0300 Subject: [PATCH] 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 --- ec2api/tests/unit/base.py | 40 +++++++++---------- ec2api/tests/unit/test_integrated_scenario.py | 2 +- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/ec2api/tests/unit/base.py b/ec2api/tests/unit/base.py index 37304ac4..00599ebb 100644 --- a/ec2api/tests/unit/base.py +++ b/ec2api/tests/unit/base.py @@ -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) diff --git a/ec2api/tests/unit/test_integrated_scenario.py b/ec2api/tests/unit/test_integrated_scenario.py index f52542c1..e8b967d4 100644 --- a/ec2api/tests/unit/test_integrated_scenario.py +++ b/ec2api/tests/unit/test_integrated_scenario.py @@ -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()