From 3a1be65c93005582d4daae6916ea407932e44dc1 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Tue, 26 Feb 2013 16:03:13 +0100 Subject: [PATCH] Correctly mock keystoneclient.Client.auto_token property with Mox Recent Mox doesn't stub out class properties any more (check https://code.google.com/p/pymox/issues/detail?id=11), so we have to do that manually. Avoids the following error: FAIL: test_get_default_role (openstack_dashboard.test.api_tests.keystone_tests.RoleAPITests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/root/Projects/openstack/horizon/openstack_dashboard/test/api_tests/keystone_tests.py", line 76, in test_get_default_role keystoneclient = self.stub_keystoneclient() File "/root/Projects/openstack/horizon/openstack_dashboard/test/helpers.py", line 280, in stub_keystoneclient self.keystoneclient = self.mox.CreateMock(keystone_client.Client) File "/usr/lib/python2.7/site-packages/mox.py", line 258, in CreateMock new_mock = MockObject(class_to_mock, attrs=attrs) File "/usr/lib/python2.7/site-packages/mox.py", line 556, in __init__ attr = getattr(class_to_mock, method) File "/usr/lib/python2.7/site-packages/mox.py", line 608, in __getattr__ raise UnknownMethodCallError(name) UnknownMethodCallError: Method called is not a member of the object: Method called is not a member of the object: auth_token >> raise UnknownMethodCallError('auth_token') Change-Id: I54fd0de298dc66344470147d9bcec6b62baf8297 --- openstack_dashboard/test/helpers.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openstack_dashboard/test/helpers.py b/openstack_dashboard/test/helpers.py index ce3d1cb..7f35a96 100644 --- a/openstack_dashboard/test/helpers.py +++ b/openstack_dashboard/test/helpers.py @@ -277,6 +277,9 @@ class APITestCase(TestCase): def stub_keystoneclient(self): if not hasattr(self, "keystoneclient"): self.mox.StubOutWithMock(keystone_client, 'Client') + # NOTE(saschpe): Mock the 'auth_token' property specifically, + # MockObject.__init__ ignores properties altogether: + keystone_client.Client.auth_token = 'foo' self.keystoneclient = self.mox.CreateMock(keystone_client.Client) return self.keystoneclient