summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2012-12-19 13:04:21 -0800
committerDevananda van der Veen <devananda.vdv@gmail.com>2012-12-19 16:06:20 -0800
commit55155c9184645306fb108316a2e7f88c41574430 (patch)
tree3a772cc9e9cbd697c5bfd26562fd4e5317d34ac6
parent276fded4972a357db40f7a72e1bf67d4f846a95a (diff)
downloadnova-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.py55
-rw-r--r--nova/tests/baremetal/db/base.py25
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()