From c0c046ef7d30787fe72b8de6c290a4b72cb207fb Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 12 Sep 2011 15:22:30 -0700 Subject: working on getting tests back --- nova/tests/scheduler/test_scheduler.py | 32 ++++++++++++++++++++------------ nova/tests/test_zones.py | 22 ++++++++++++++-------- 2 files changed, 34 insertions(+), 20 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index 890348192..c880a9005 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -53,6 +53,10 @@ FAKE_UUID_NOT_FOUND = 'ffffffff-ffff-ffff-ffff-ffffffffffff' FAKE_UUID = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' +class FakeContext(object): + auth_token = None + + class TestDriver(driver.Scheduler): """Scheduler Driver for Tests""" def schedule(context, topic, *args, **kwargs): @@ -956,11 +960,12 @@ class MultiDriverTestCase(SimpleDriverTestCase): class FakeZone(object): - def __init__(self, id, api_url, username, password): + def __init__(self, id, api_url, username, password, name='child'): self.id = id self.api_url = api_url self.username = username self.password = password + self.name = name ZONE_API_URL1 = "http://1.example.com" @@ -986,7 +991,7 @@ class FakeRerouteCompute(api.reroute_compute): super(FakeRerouteCompute, self).__init__(method_name) self.id_to_return = id_to_return - def _call_child_zones(self, zones, function): + def _call_child_zones(self, context, zones, function): return [] def get_collection_context_and_id(self, args, kwargs): @@ -1092,7 +1097,8 @@ class ZoneRedirectTest(test.TestCase): return None class FakeNovaClientWithFailure(object): - def __init__(self, username, password, method, api_url): + def __init__(self, username, password, method, api_url, + token=None, region_name=None): self.api_url = api_url def authenticate(self): @@ -1108,7 +1114,7 @@ class ZoneRedirectTest(test.TestCase): pass self.assertRaises(exception.ZoneRequestError, - do_get, None, {}, FAKE_UUID) + do_get, None, FakeContext(), FAKE_UUID) def test_one_zone_down_got_instance(self): @@ -1120,7 +1126,8 @@ class ZoneRedirectTest(test.TestCase): return FakeServer() class FakeNovaClientWithFailure(object): - def __init__(self, username, password, method, api_url): + def __init__(self, username, password, method, api_url, + token=None, region_name=None): self.api_url = api_url def authenticate(self): @@ -1136,14 +1143,14 @@ class ZoneRedirectTest(test.TestCase): pass try: - do_get(None, {}, FAKE_UUID) + do_get(None, FakeContext(), FAKE_UUID) except api.RedirectResult, e: results = e.results self.assertIn('server', results) self.assertEqual(results['server']['id'], FAKE_UUID) self.assertEqual(results['server']['test'], '1234') except Exception, e: - self.fail(_("RedirectResult should have been raised")) + self.fail(_("RedirectResult should have been raised: %s" % e)) else: self.fail(_("RedirectResult should have been raised")) @@ -1153,7 +1160,8 @@ class ZoneRedirectTest(test.TestCase): return None class FakeNovaClientNoFailure(object): - def __init__(self, username, password, method, api_url): + def __init__(self, username, password, method, api_url, + token=None, region_name=None): pass def authenticate(self): @@ -1168,7 +1176,7 @@ class ZoneRedirectTest(test.TestCase): pass self.assertRaises(exception.InstanceNotFound, - do_get, None, {}, FAKE_UUID) + do_get, None, FakeContext(), FAKE_UUID) class FakeServerCollection(object): @@ -1250,7 +1258,7 @@ class CallZoneMethodTest(test.TestCase): super(CallZoneMethodTest, self).tearDown() def test_call_zone_method(self): - context = {} + context = FakeContext() method = 'do_something' results = api.call_zone_method(context, method) self.assertEqual(len(results), 2) @@ -1258,12 +1266,12 @@ class CallZoneMethodTest(test.TestCase): self.assertIn((2, 42), results) def test_call_zone_method_not_present(self): - context = {} + context = FakeContext() method = 'not_present' self.assertRaises(AttributeError, api.call_zone_method, context, method) def test_call_zone_method_generates_exception(self): - context = {} + context = FakeContext() method = 'raises_exception' self.assertRaises(Exception, api.call_zone_method, context, method) diff --git a/nova/tests/test_zones.py b/nova/tests/test_zones.py index 9efa23015..3ffc9371d 100644 --- a/nova/tests/test_zones.py +++ b/nova/tests/test_zones.py @@ -63,7 +63,7 @@ class ZoneManagerTestCase(test.TestCase): self.mox.StubOutWithMock(db, 'zone_get_all') db.zone_get_all(mox.IgnoreArg()).AndReturn([ FakeZone(id=1, api_url='http://foo.com', username='user1', - password='pass1'), + password='pass1', name='child'), ]) self.assertEquals(len(zm.zone_states), 0) @@ -107,13 +107,15 @@ class ZoneManagerTestCase(test.TestCase): zm = zone_manager.ZoneManager() zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=1, api_url='http://foo.com', - username='user1', password='pass1')) + username='user1', password='pass1', name='child', + weight_offset=0.0, weight_scale=1.0)) zm.zone_states[1] = zone_state self.mox.StubOutWithMock(db, 'zone_get_all') db.zone_get_all(mox.IgnoreArg()).AndReturn([ FakeZone(id=1, api_url='http://foo.com', username='user2', - password='pass2'), + password='pass2', name='child', + weight_offset=0.0, weight_scale=1.0), ]) self.assertEquals(len(zm.zone_states), 1) @@ -129,7 +131,8 @@ class ZoneManagerTestCase(test.TestCase): zm = zone_manager.ZoneManager() zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=1, api_url='http://foo.com', - username='user1', password='pass1')) + username='user1', password='pass1', name='child', + weight_offset=0.0, weight_scale=1.0)) zm.zone_states[1] = zone_state self.mox.StubOutWithMock(db, 'zone_get_all') @@ -147,14 +150,15 @@ class ZoneManagerTestCase(test.TestCase): zm = zone_manager.ZoneManager() zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=1, api_url='http://foo.com', - username='user1', password='pass1')) + username='user1', password='pass1', name='child', + weight_offset=0.0, weight_scale=1.0)) zm.zone_states[1] = zone_state self.mox.StubOutWithMock(db, 'zone_get_all') db.zone_get_all(mox.IgnoreArg()).AndReturn([ FakeZone(id=2, api_url='http://foo.com', username='user2', - password='pass2'), + password='pass2', name='child'), ]) self.assertEquals(len(zm.zone_states), 1) @@ -173,7 +177,8 @@ class ZoneManagerTestCase(test.TestCase): zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=2, api_url='http://foo.com', username='user2', - password='pass2')) + password='pass2', name='child', + weight_offset=0.0, weight_scale=1.0)) zone_state.attempt = 1 self.mox.ReplayAll() @@ -188,7 +193,8 @@ class ZoneManagerTestCase(test.TestCase): zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=2, api_url='http://foo.com', username='user2', - password='pass2')) + password='pass2', name='child', + weight_offset=0.0, weight_scale=1.0)) zone_state.attempt = FLAGS.zone_failures_to_offline - 1 self.mox.ReplayAll() -- cgit From 9ccefcaa44062f5aa2e562dd126e22d06a06c392 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Mon, 12 Sep 2011 15:36:18 -0700 Subject: zone manager tests working --- nova/tests/test_zones.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/test_zones.py b/nova/tests/test_zones.py index 3ffc9371d..9b5b9b24a 100644 --- a/nova/tests/test_zones.py +++ b/nova/tests/test_zones.py @@ -63,7 +63,8 @@ class ZoneManagerTestCase(test.TestCase): self.mox.StubOutWithMock(db, 'zone_get_all') db.zone_get_all(mox.IgnoreArg()).AndReturn([ FakeZone(id=1, api_url='http://foo.com', username='user1', - password='pass1', name='child'), + password='pass1', name='child', weight_offset=0.0, + weight_scale=1.0), ]) self.assertEquals(len(zm.zone_states), 0) @@ -151,14 +152,15 @@ class ZoneManagerTestCase(test.TestCase): zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=1, api_url='http://foo.com', username='user1', password='pass1', name='child', - weight_offset=0.0, weight_scale=1.0)) + weight_offset=2.0, weight_scale=3.0)) zm.zone_states[1] = zone_state self.mox.StubOutWithMock(db, 'zone_get_all') db.zone_get_all(mox.IgnoreArg()).AndReturn([ FakeZone(id=2, api_url='http://foo.com', username='user2', - password='pass2', name='child'), + password='pass2', name='child', weight_offset=2.0, + weight_scale=3.0), ]) self.assertEquals(len(zm.zone_states), 1) @@ -172,7 +174,7 @@ class ZoneManagerTestCase(test.TestCase): def test_poll_zone(self): self.mox.StubOutWithMock(zone_manager, '_call_novaclient') zone_manager._call_novaclient(mox.IgnoreArg()).AndReturn( - dict(name='zohan', capabilities='hairdresser')) + dict(name='child', capabilities='hairdresser')) zone_state = zone_manager.ZoneState() zone_state.update_credentials(FakeZone(id=2, @@ -185,7 +187,7 @@ class ZoneManagerTestCase(test.TestCase): zone_manager._poll_zone(zone_state) self.mox.VerifyAll() self.assertEquals(zone_state.attempt, 0) - self.assertEquals(zone_state.name, 'zohan') + self.assertEquals(zone_state.name, 'child') def test_poll_zone_fails(self): self.stubs.Set(zone_manager, "_call_novaclient", exploding_novaclient) @@ -202,7 +204,6 @@ class ZoneManagerTestCase(test.TestCase): self.mox.VerifyAll() self.assertEquals(zone_state.attempt, 3) self.assertFalse(zone_state.is_active) - self.assertEquals(zone_state.name, None) def test_host_service_caps_stale_no_stale_service(self): zm = zone_manager.ZoneManager() -- cgit From fba1d427a941f1eb6971611cf1b016274ed19baa Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Wed, 14 Sep 2011 19:55:51 -0700 Subject: tests are back --- nova/tests/scheduler/test_scheduler.py | 39 ++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index c880a9005..022d93bcf 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -1076,8 +1076,7 @@ class ZoneRedirectTest(test.TestCase): def test_unmarshal_single_server(self): decorator = api.reroute_compute("foo") decorator.item_uuid = 'fake_uuid' - self.assertRaises(exception.InstanceNotFound, - decorator.unmarshall_result, []) + self.assertTrue(isinstance(decorator.unmarshall_result([]), exception.InstanceNotFound)) self.assertEquals(decorator.unmarshall_result( [FakeResource(dict(a=1, b=2)), ]), dict(server=dict(a=1, b=2))) @@ -1113,8 +1112,11 @@ class ZoneRedirectTest(test.TestCase): def do_get(self, context, uuid): pass - self.assertRaises(exception.ZoneRequestError, - do_get, None, FakeContext(), FAKE_UUID) + try: + do_get(None, FakeContext(), FAKE_UUID) + self.fail("Should have got redirect exception.") + except api.RedirectResult, e: + self.assertTrue(isinstance(e.results, exception.ZoneRequestError)) def test_one_zone_down_got_instance(self): @@ -1175,8 +1177,11 @@ class ZoneRedirectTest(test.TestCase): def do_get(self, context, uuid): pass - self.assertRaises(exception.InstanceNotFound, - do_get, None, FakeContext(), FAKE_UUID) + try: + do_get(None, FakeContext(), FAKE_UUID) + self.fail("Expected redirect exception") + except api.RedirectResult, e: + self.assertTrue(isinstance(e.results, exception.InstanceNotFound)) class FakeServerCollection(object): @@ -1217,17 +1222,19 @@ class DynamicNovaClientTest(test.TestCase): def test_issue_novaclient_command_not_found(self): zone = FakeZone(1, 'http://example.com', 'bob', 'xxx') - self.assertEquals(api._issue_novaclient_command( - FakeNovaClient(FakeEmptyServerCollection()), - zone, "servers", "get", 100), None) - - self.assertEquals(api._issue_novaclient_command( - FakeNovaClient(FakeEmptyServerCollection()), - zone, "servers", "find", name="test"), None) + try: + api._issue_novaclient_command(FakeNovaClient( + FakeEmptyServerCollection()), zone, "servers", "get", 100) + self.fail("Expected NotFound exception") + except novaclient_exceptions.NotFound, e: + pass - self.assertEquals(api._issue_novaclient_command( - FakeNovaClient(FakeEmptyServerCollection()), - zone, "servers", "any", "name"), None) + try: + api._issue_novaclient_command(FakeNovaClient( + FakeEmptyServerCollection()), zone, "servers", "any", "name") + self.fail("Expected NotFound exception") + except novaclient_exceptions.NotFound, e: + pass class FakeZonesProxy(object): -- cgit From 65e3f8201d88f231dfbd7934f5b920ae3b1d8e31 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 15 Sep 2011 04:54:01 -0700 Subject: pep8 --- nova/tests/scheduler/test_scheduler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'nova/tests') diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index 022d93bcf..3acb91f72 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -1076,7 +1076,8 @@ class ZoneRedirectTest(test.TestCase): def test_unmarshal_single_server(self): decorator = api.reroute_compute("foo") decorator.item_uuid = 'fake_uuid' - self.assertTrue(isinstance(decorator.unmarshall_result([]), exception.InstanceNotFound)) + self.assertTrue(isinstance(decorator.unmarshall_result([]), + exception.InstanceNotFound)) self.assertEquals(decorator.unmarshall_result( [FakeResource(dict(a=1, b=2)), ]), dict(server=dict(a=1, b=2))) -- cgit From 2fd55ddfdf065a8792fdd0e3f3e97b5e56e4a4a3 Mon Sep 17 00:00:00 2001 From: Sandy Walsh Date: Thu, 15 Sep 2011 13:42:30 -0700 Subject: tests working again --- nova/tests/scheduler/test_scheduler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index 3acb91f72..0b51792a0 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -1076,8 +1076,8 @@ class ZoneRedirectTest(test.TestCase): def test_unmarshal_single_server(self): decorator = api.reroute_compute("foo") decorator.item_uuid = 'fake_uuid' - self.assertTrue(isinstance(decorator.unmarshall_result([]), - exception.InstanceNotFound)) + result = decorator.unmarshall_result([]) + self.assertEquals(decorator.unmarshall_result([]), None) self.assertEquals(decorator.unmarshall_result( [FakeResource(dict(a=1, b=2)), ]), dict(server=dict(a=1, b=2))) @@ -1182,7 +1182,7 @@ class ZoneRedirectTest(test.TestCase): do_get(None, FakeContext(), FAKE_UUID) self.fail("Expected redirect exception") except api.RedirectResult, e: - self.assertTrue(isinstance(e.results, exception.InstanceNotFound)) + self.assertEquals(e.results, None) class FakeServerCollection(object): -- cgit