summaryrefslogtreecommitdiffstats
path: root/nova/test.py
diff options
context:
space:
mode:
authortermie <github@anarkystic.com>2011-02-22 07:44:41 +0000
committerTarmac <>2011-02-22 07:44:41 +0000
commitd9f5f817175f8f9ee6554c02e10ddb730f97080d (patch)
tree4e8dd5bed5bcfe033e48e82a878673291ebac693 /nova/test.py
parent1f4bf71dfbe742c95584ff3a357076b7ea736d11 (diff)
parent4b2a45aa5dc91b24aea53f748906d8a69e40f7c8 (diff)
downloadnova-d9f5f817175f8f9ee6554c02e10ddb730f97080d.tar.gz
nova-d9f5f817175f8f9ee6554c02e10ddb730f97080d.tar.xz
nova-d9f5f817175f8f9ee6554c02e10ddb730f97080d.zip
Some quick test cleanups, first step towards standardizing the way we start services in tests.
Diffstat (limited to 'nova/test.py')
-rw-r--r--nova/test.py53
1 files changed, 41 insertions, 12 deletions
diff --git a/nova/test.py b/nova/test.py
index a12cf9d32..4602f0313 100644
--- a/nova/test.py
+++ b/nova/test.py
@@ -23,6 +23,7 @@ and some black magic for inline callbacks.
"""
import datetime
+import uuid
import unittest
import mox
@@ -33,6 +34,7 @@ from nova import db
from nova import fakerabbit
from nova import flags
from nova import rpc
+from nova import service
from nova.network import manager as network_manager
from nova.tests import fake_flags
@@ -80,6 +82,7 @@ class TestCase(unittest.TestCase):
self.stubs = stubout.StubOutForTesting()
self.flag_overrides = {}
self.injected = []
+ self._services = []
self._monkey_patch_attach()
self._original_flags = FLAGS.FlagValuesDict()
@@ -91,25 +94,42 @@ class TestCase(unittest.TestCase):
self.stubs.UnsetAll()
self.stubs.SmartUnsetAll()
self.mox.VerifyAll()
- # NOTE(vish): Clean up any ips associated during the test.
- ctxt = context.get_admin_context()
- db.fixed_ip_disassociate_all_by_timeout(ctxt, FLAGS.host,
- self.start)
- db.network_disassociate_all(ctxt)
+ super(TestCase, self).tearDown()
+ finally:
+ try:
+ # Clean up any ips associated during the test.
+ ctxt = context.get_admin_context()
+ db.fixed_ip_disassociate_all_by_timeout(ctxt, FLAGS.host,
+ self.start)
+ db.network_disassociate_all(ctxt)
+
+ db.security_group_destroy_all(ctxt)
+ except Exception:
+ pass
+
+ # Clean out fake_rabbit's queue if we used it
+ if FLAGS.fake_rabbit:
+ fakerabbit.reset_all()
+
+ # Reset any overriden flags
+ self.reset_flags()
+
+ # Reset our monkey-patches
rpc.Consumer.attach_to_eventlet = self.originalAttach
+
+ # Stop any timers
for x in self.injected:
try:
x.stop()
except AssertionError:
pass
- if FLAGS.fake_rabbit:
- fakerabbit.reset_all()
-
- db.security_group_destroy_all(ctxt)
- super(TestCase, self).tearDown()
- finally:
- self.reset_flags()
+ # Kill any services
+ for x in self._services:
+ try:
+ x.kill()
+ except Exception:
+ pass
def flags(self, **kw):
"""Override flag variables for a test"""
@@ -127,6 +147,15 @@ class TestCase(unittest.TestCase):
for k, v in self._original_flags.iteritems():
setattr(FLAGS, k, v)
+ def start_service(self, name, host=None, **kwargs):
+ host = host and host or uuid.uuid4().hex
+ kwargs.setdefault('host', host)
+ kwargs.setdefault('binary', 'nova-%s' % name)
+ svc = service.Service.create(**kwargs)
+ svc.start()
+ self._services.append(svc)
+ return svc
+
def _monkey_patch_attach(self):
self.originalAttach = rpc.Consumer.attach_to_eventlet