diff options
author | Zuul <zuul@review.opendev.org> | 2019-09-25 18:07:39 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-09-25 18:07:39 +0000 |
commit | 9fbdc779daf7dd23f1cb175197659418b1014f35 (patch) | |
tree | f858d2a1347148f76c3c60b20eea0ebaac918711 | |
parent | 5814793806ead0f49abe6cabf69eacfdf17165bb (diff) | |
parent | 528f4e05efda40d89e14a543dfd3199eda8936c3 (diff) | |
download | designate-9fbdc779daf7dd23f1cb175197659418b1014f35.tar.gz |
Merge "fix call obj_reset_changes with recursive=True raise error"
-rw-r--r-- | designate/objects/base.py | 6 | ||||
-rw-r--r-- | designate/tests/unit/objects/test_base.py | 15 |
2 files changed, 19 insertions, 2 deletions
diff --git a/designate/objects/base.py b/designate/objects/base.py index de7fa822..2ed893c5 100644 --- a/designate/objects/base.py +++ b/designate/objects/base.py @@ -18,6 +18,8 @@ from oslo_versionedobjects import exception from oslo_utils import excutils from designate.i18n import _ from oslo_versionedobjects import base +from oslo_versionedobjects import fields as ovoo_fields + from oslo_versionedobjects.base import VersionedObjectDictCompat as DictObjectMixin # noqa from designate.objects import fields @@ -226,10 +228,10 @@ class DesignateObject(base.VersionedObject): continue # Reset straight Object and ListOfObjects fields - if isinstance(self.fields[field], self.obj_fields.ObjectField): + if isinstance(self.fields[field], ovoo_fields.ObjectField): value.obj_reset_changes(recursive=True) elif isinstance(self.fields[field], - self.obj_fields.ListOfObjectsField): + ovoo_fields.ListOfObjectsField): for thing in value: thing.obj_reset_changes(recursive=True) diff --git a/designate/tests/unit/objects/test_base.py b/designate/tests/unit/objects/test_base.py index 15b913d9..3b3fa23e 100644 --- a/designate/tests/unit/objects/test_base.py +++ b/designate/tests/unit/objects/test_base.py @@ -405,6 +405,21 @@ class DesignateObjectTest(oslotest.base.BaseTestCase): self.assertEqual(1, len(obj.obj_what_changed())) self.assertEqual({'name': "My Name"}, obj.obj_get_changes()) + def test_obj_reset_changes_recursive(self): + obj = TestObject() + obj.id = "My ID" + obj.name = "My Name" + obj.nested = TestObject() + obj.nested.id = "My ID" + + self.assertEqual(3, len(obj.obj_what_changed())) + + obj.obj_reset_changes() + self.assertEqual(1, len(obj.obj_what_changed())) + + obj.obj_reset_changes(recursive=True) + self.assertEqual(0, len(obj.obj_what_changed())) + def test_obj_get_original_value(self): # Create an object obj = TestObject() |