diff options
| author | Monty Taylor <mordred@inaugust.com> | 2012-12-19 13:04:21 -0800 |
|---|---|---|
| committer | Devananda van der Veen <devananda.vdv@gmail.com> | 2012-12-19 16:06:20 -0800 |
| commit | 55155c9184645306fb108316a2e7f88c41574430 (patch) | |
| tree | 3a772cc9e9cbd697c5bfd26562fd4e5317d34ac6 | |
| parent | 276fded4972a357db40f7a72e1bf67d4f846a95a (diff) | |
| download | nova-55155c9184645306fb108316a2e7f88c41574430.tar.gz nova-55155c9184645306fb108316a2e7f88c41574430.tar.xz nova-55155c9184645306fb108316a2e7f88c41574430.zip | |
Move baremetal database tests to fixtures.
The baremetal database tests didn't get migrated to fixtures when we migrated
base nova. Funny story: maybe we should re-use code rather than copying!
So I did that. It's reusable now.
Change-Id: I730aad4a6aedb3993e032a14c9b8d2cd58913b4f
| -rw-r--r-- | nova/test.py | 55 | ||||
| -rw-r--r-- | nova/tests/baremetal/db/base.py | 25 |
2 files changed, 40 insertions, 40 deletions
diff --git a/nova/test.py b/nova/test.py index 08d426874..8f9aa60ff 100644 --- a/nova/test.py +++ b/nova/test.py @@ -37,7 +37,7 @@ import testtools from nova import context from nova import db from nova.db import migration -from nova.db.sqlalchemy.session import get_engine +from nova.db.sqlalchemy import session from nova.network import manager as network_manager from nova.openstack.common import cfg from nova.openstack.common import log as logging @@ -75,38 +75,19 @@ _DB_CACHE = None class Database(fixtures.Fixture): - def __init__(self): - self.engine = get_engine() + def __init__(self, db_session, db_migrate): + self.engine = db_session.get_engine() self.engine.dispose() conn = self.engine.connect() if CONF.sql_connection == "sqlite://": - if migration.db_version() > migration.INIT_VERSION: + if db_migrate.db_version() > db_migrate.INIT_VERSION: return else: testdb = os.path.join(CONF.state_path, CONF.sqlite_db) if os.path.exists(testdb): return - migration.db_sync() - ctxt = context.get_admin_context() - network = network_manager.VlanManager() - bridge_interface = CONF.flat_interface or CONF.vlan_interface - network.create_networks(ctxt, - label='test', - cidr=CONF.fixed_range, - multi_host=CONF.multi_host, - num_networks=CONF.num_networks, - network_size=CONF.network_size, - cidr_v6=CONF.fixed_range_v6, - gateway=CONF.gateway, - gateway_v6=CONF.gateway_v6, - bridge=CONF.flat_network_bridge, - bridge_interface=bridge_interface, - vpn_start=CONF.vpn_start, - vlan_start=CONF.vlan_start, - dns1=CONF.flat_network_dns) - for net in db.network_get_all(ctxt): - network.set_network_host(ctxt, net) - + db_migrate.db_sync() + self.post_migrations() if CONF.sql_connection == "sqlite://": conn = self.engine.connect() self._DB = "".join(line for line in conn.connection.iterdump()) @@ -128,6 +109,28 @@ class Database(fixtures.Fixture): os.path.join(CONF.state_path, CONF.sqlite_db)) + def post_migrations(self): + """Any addition steps that are needed outside of the migrations.""" + ctxt = context.get_admin_context() + network = network_manager.VlanManager() + bridge_interface = CONF.flat_interface or CONF.vlan_interface + network.create_networks(ctxt, + label='test', + cidr=CONF.fixed_range, + multi_host=CONF.multi_host, + num_networks=CONF.num_networks, + network_size=CONF.network_size, + cidr_v6=CONF.fixed_range_v6, + gateway=CONF.gateway, + gateway_v6=CONF.gateway_v6, + bridge=CONF.flat_network_bridge, + bridge_interface=bridge_interface, + vpn_start=CONF.vpn_start, + vlan_start=CONF.vlan_start, + dns1=CONF.flat_network_dns) + for net in db.network_get_all(ctxt): + network.set_network_host(ctxt, net) + class ReplaceModule(fixtures.Fixture): """Replace a module with a fake module.""" @@ -205,7 +208,7 @@ class TestCase(testtools.TestCase): global _DB_CACHE if not _DB_CACHE: - _DB_CACHE = Database() + _DB_CACHE = Database(session, migration) self.useFixture(_DB_CACHE) mox_fixture = self.useFixture(MoxStubout()) diff --git a/nova/tests/baremetal/db/base.py b/nova/tests/baremetal/db/base.py index ea5a3b427..d9b9d1263 100644 --- a/nova/tests/baremetal/db/base.py +++ b/nova/tests/baremetal/db/base.py @@ -15,31 +15,25 @@ """Bare-metal DB test base class.""" +import fixtures + from nova import context as nova_context from nova.openstack.common import cfg from nova import test from nova.virt.baremetal.db import migration as bm_migration from nova.virt.baremetal.db.sqlalchemy import session as bm_session -_DB = None +_DB_CACHE = None CONF = cfg.CONF CONF.import_opt('baremetal_sql_connection', 'nova.virt.baremetal.db.sqlalchemy.session') -def _reset_bmdb(): - global _DB - engine = bm_session.get_engine() - engine.dispose() - conn = engine.connect() - if _DB is None: - if bm_migration.db_version() > bm_migration.INIT_VERSION: - return - bm_migration.db_sync() - _DB = "".join(line for line in conn.connection.iterdump()) - else: - conn.connection.executescript(_DB) +class Database(test.Database): + + def post_migrations(self): + pass class BMDBTestCase(test.TestCase): @@ -47,5 +41,8 @@ class BMDBTestCase(test.TestCase): def setUp(self): super(BMDBTestCase, self).setUp() self.flags(baremetal_sql_connection='sqlite:///:memory:') - _reset_bmdb() + global _DB_CACHE + if not _DB_CACHE: + _DB_CACHE = Database(bm_session, bm_migration) + self.useFixture(_DB_CACHE) self.context = nova_context.get_admin_context() |
