diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-06-26 18:18:30 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-06-26 18:18:30 +0000 |
| commit | 165fbb80844381baf35d6d0fac72a8c5823936cf (patch) | |
| tree | a2020e0064fa55c4bb8179f9ecaf1faedd501ef3 | |
| parent | 690c17454dbc32ccd83a55ad47f5e5a046b1fdd7 (diff) | |
| parent | 9480d1ee93c26f02d1f81e6d869f27b74e7e6d7e (diff) | |
| download | nova-165fbb80844381baf35d6d0fac72a8c5823936cf.tar.gz nova-165fbb80844381baf35d6d0fac72a8c5823936cf.tar.xz nova-165fbb80844381baf35d6d0fac72a8c5823936cf.zip | |
Merge "Make NovaObject support the 'in' operator"
| -rw-r--r-- | nova/objects/base.py | 7 | ||||
| -rw-r--r-- | nova/tests/objects/test_objects.py | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/nova/objects/base.py b/nova/objects/base.py index 6f2b6c81f..147d55c23 100644 --- a/nova/objects/base.py +++ b/nova/objects/base.py @@ -353,6 +353,13 @@ class NovaObject(object): """ setattr(self, name, value) + def __contains__(self, name): + """For backwards-compatibility with dict-based objects. + + NOTE(danms): May be removed in the future. + """ + return hasattr(self, get_attrname(name)) + def get(self, key, value=None): """For backwards-compatibility with dict-based objects. diff --git a/nova/tests/objects/test_objects.py b/nova/tests/objects/test_objects.py index 00aaf1781..40ad8bb81 100644 --- a/nova/tests/objects/test_objects.py +++ b/nova/tests/objects/test_objects.py @@ -441,6 +441,13 @@ class _TestObject(object): } self.assertEqual(obj.obj_to_primitive(), expected) + def test_contains(self): + obj = MyObj() + self.assertFalse('foo' in obj) + obj.foo = 1 + self.assertTrue('foo' in obj) + self.assertFalse('does_not_exist' in obj) + class TestObject(_LocalTest, _TestObject): pass |
