diff options
author | termie <github@anarkystic.com> | 2011-02-22 07:44:41 +0000 |
---|---|---|
committer | Tarmac <> | 2011-02-22 07:44:41 +0000 |
commit | d9f5f817175f8f9ee6554c02e10ddb730f97080d (patch) | |
tree | 4e8dd5bed5bcfe033e48e82a878673291ebac693 /nova/test.py | |
parent | 1f4bf71dfbe742c95584ff3a357076b7ea736d11 (diff) | |
parent | 4b2a45aa5dc91b24aea53f748906d8a69e40f7c8 (diff) | |
download | nova-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.py | 53 |
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 |