diff --git a/openstack_dashboard/test/tests/quotas.py b/openstack_dashboard/test/tests/quotas.py index c511248ae5..eed4d3f463 100644 --- a/openstack_dashboard/test/tests/quotas.py +++ b/openstack_dashboard/test/tests/quotas.py @@ -119,6 +119,11 @@ class QuotaTests(test.APITestCase): # Compare internal structure of usages to expected. self.assertEqual(quota_usages.usages, expected_output) + # Make sure that the `in` operator and the `.get()` method + # behave as expected + self.assertIn('ram', quota_usages) + self.assertIsNotNone(quota_usages.get('ram')) + @test.create_stubs({api.nova: ('server_list', 'flavor_list', 'tenant_quota_get',), diff --git a/openstack_dashboard/usage/quotas.py b/openstack_dashboard/usage/quotas.py index 862a1156d8..81e3042b95 100644 --- a/openstack_dashboard/usage/quotas.py +++ b/openstack_dashboard/usage/quotas.py @@ -65,6 +65,9 @@ class QuotaUsage(dict): def __init__(self): self.usages = defaultdict(dict) + def __contains__(self, key): + return key in self.usages + def __getitem__(self, key): return self.usages[key] @@ -76,6 +79,9 @@ class QuotaUsage(dict): def __repr__(self): return repr(dict(self.usages)) + def get(self, key, default=None): + return self.usages.get(key, default) + def add_quota(self, quota): """Adds an internal tracking reference for the given quota.""" if quota.limit is None or quota.limit == -1: