summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-06-26 18:18:30 +0000
committerGerrit Code Review <review@openstack.org>2013-06-26 18:18:30 +0000
commit165fbb80844381baf35d6d0fac72a8c5823936cf (patch)
treea2020e0064fa55c4bb8179f9ecaf1faedd501ef3 /nova
parent690c17454dbc32ccd83a55ad47f5e5a046b1fdd7 (diff)
parent9480d1ee93c26f02d1f81e6d869f27b74e7e6d7e (diff)
downloadnova-165fbb80844381baf35d6d0fac72a8c5823936cf.tar.gz
nova-165fbb80844381baf35d6d0fac72a8c5823936cf.tar.xz
nova-165fbb80844381baf35d6d0fac72a8c5823936cf.zip
Merge "Make NovaObject support the 'in' operator"
Diffstat (limited to 'nova')
-rw-r--r--nova/objects/base.py7
-rw-r--r--nova/tests/objects/test_objects.py7
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