From 08b4a4fb49744c9d3c499a52922a4e2cb2110e14 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 20 Oct 2010 13:46:37 -0700 Subject: make sure looping calls are created after service starts and add some tests to verify service delegation works --- nova/tests/service_unittest.py | 44 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/service_unittest.py b/nova/tests/service_unittest.py index 61db52742..8533fab0a 100644 --- a/nova/tests/service_unittest.py +++ b/nova/tests/service_unittest.py @@ -39,11 +39,44 @@ flags.DEFINE_string("fake_manager", "nova.tests.service_unittest.FakeManager", class FakeManager(manager.Manager): """Fake manager for tests""" - pass + def test_method(self): + return 'manager' + + +class ExtendedService(service.Service): + def test_method(self): + return 'service' + + +class ServiceManagerTestCase(test.BaseTestCase): + """Test cases for Services""" + + def test_attribute_error_for_no_manager(self): + serv = service.Service('test', + 'test', + 'test', + 'nova.tests.service_unittest.FakeManager') + self.assertRaises(AttributeError, getattr, serv, 'test_method') + + def test_message_gets_to_manager(self): + serv = service.Service('test', + 'test', + 'test', + 'nova.tests.service_unittest.FakeManager') + serv.startService() + self.assertEqual(serv.test_method(), 'manager') + + def test_override_manager_method(self): + serv = ExtendedService('test', + 'test', + 'test', + 'nova.tests.service_unittest.FakeManager') + serv.startService() + self.assertEqual(serv.test_method(), 'service') class ServiceTestCase(test.BaseTestCase): - """Test cases for rpc""" + """Test cases for Services""" def setUp(self): # pylint: disable=C0103 super(ServiceTestCase, self).setUp() @@ -54,6 +87,11 @@ class ServiceTestCase(test.BaseTestCase): host = 'foo' binary = 'nova-fake' topic = 'fake' + + # NOTE(vish): Create was moved out of mox replay to make sure that + # the looping calls are created in StartService. + app = service.Service.create(host=host, binary=binary) + self.mox.StubOutWithMock(rpc, 'AdapterConsumer', use_mock_anything=True) @@ -99,7 +137,6 @@ class ServiceTestCase(test.BaseTestCase): service_create).AndReturn(service_ref) self.mox.ReplayAll() - app = service.Service.create(host=host, binary=binary) startApplication(app, False) self.assert_(app) @@ -190,3 +227,4 @@ class ServiceTestCase(test.BaseTestCase): rv = yield s.report_state(host, binary) self.assert_(not s.model_disconnected) + -- cgit