diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-05-26 14:59:51 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-05-26 14:59:51 +0000 |
commit | 064822181a2f1fe16c5e94f33eb7781ef7a01d59 (patch) | |
tree | b729fdf163aece6f77afef6ccd83886dac956820 | |
parent | 85078098e727df504e9ed2606d9f019933383961 (diff) | |
parent | 5d933b0dd59b6340147d1f2307df98c1b66d76f7 (diff) | |
download | python-glanceclient-064822181a2f1fe16c5e94f33eb7781ef7a01d59.tar.gz |
Merge "Fix Metadef Object update issue with python-glanceclient"
-rw-r--r-- | glanceclient/tests/unit/v2/test_metadefs_namespaces.py | 8 | ||||
-rw-r--r-- | glanceclient/tests/unit/v2/test_metadefs_objects.py | 18 | ||||
-rw-r--r-- | glanceclient/tests/unit/v2/test_metadefs_properties.py | 10 | ||||
-rw-r--r-- | glanceclient/v2/metadefs.py | 4 |
4 files changed, 38 insertions, 2 deletions
diff --git a/glanceclient/tests/unit/v2/test_metadefs_namespaces.py b/glanceclient/tests/unit/v2/test_metadefs_namespaces.py index ecc05ee..5995e6e 100644 --- a/glanceclient/tests/unit/v2/test_metadefs_namespaces.py +++ b/glanceclient/tests/unit/v2/test_metadefs_namespaces.py @@ -664,6 +664,14 @@ class TestNamespaceController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, **properties) + def test_update_namespace_disallowed_fields(self): + properties = {'display_name': 'My Updated Name'} + self.controller.update(NAMESPACE1, **properties) + actual = self.api.calls + _disallowed_fields = ['self', 'schema', 'created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_namespace(self): self.controller.delete(NAMESPACE1) expect = [ diff --git a/glanceclient/tests/unit/v2/test_metadefs_objects.py b/glanceclient/tests/unit/v2/test_metadefs_objects.py index c565b3c..610aaee 100644 --- a/glanceclient/tests/unit/v2/test_metadefs_objects.py +++ b/glanceclient/tests/unit/v2/test_metadefs_objects.py @@ -304,6 +304,24 @@ class TestObjectController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, OBJECT1, **properties) + def test_update_object_disallowed_fields(self): + properties = { + 'description': 'UPDATED_DESCRIPTION' + } + self.controller.update(NAMESPACE1, OBJECT1, **properties) + actual = self.api.calls + # API makes three calls(GET, PUT, GET) for object update. + # PUT has the request body in the list + '''('PUT', '/v2/metadefs/namespaces/Namespace1/objects/Object1', {}, + [('description', 'UPDATED_DESCRIPTION'), + ('name', 'Object1'), + ('properties', ...), + ('required', [])])''' + + _disallowed_fields = ['self', 'schema', 'created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_object(self): self.controller.delete(NAMESPACE1, OBJECT1) expect = [ diff --git a/glanceclient/tests/unit/v2/test_metadefs_properties.py b/glanceclient/tests/unit/v2/test_metadefs_properties.py index 388bf93..11165b9 100644 --- a/glanceclient/tests/unit/v2/test_metadefs_properties.py +++ b/glanceclient/tests/unit/v2/test_metadefs_properties.py @@ -280,6 +280,16 @@ class TestPropertyController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, PROPERTY1, **properties) + def test_update_property_disallowed_fields(self): + properties = { + 'description': 'UPDATED_DESCRIPTION' + } + self.controller.update(NAMESPACE1, PROPERTY1, **properties) + actual = self.api.calls + _disallowed_fields = ['created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_property(self): self.controller.delete(NAMESPACE1, PROPERTY1) expect = [ diff --git a/glanceclient/v2/metadefs.py b/glanceclient/v2/metadefs.py index b6ba492..84d83df 100644 --- a/glanceclient/v2/metadefs.py +++ b/glanceclient/v2/metadefs.py @@ -348,8 +348,8 @@ class ObjectController(object): # Remove read-only parameters. read_only = ['schema', 'updated_at', 'created_at'] for elem in read_only: - if elem in namespace: - del namespace[elem] + if elem in obj: + del obj[elem] url = '/v2/metadefs/namespaces/{0}/objects/{1}'.format(namespace, object_name) |