Merge "Added test test_create_snapshot_over_quota_limit"
diff --git a/manila_tempest_tests/tests/api/test_metadata.py b/manila_tempest_tests/tests/api/test_metadata.py
index 5ca4e83..c8529a3 100644
--- a/manila_tempest_tests/tests/api/test_metadata.py
+++ b/manila_tempest_tests/tests/api/test_metadata.py
@@ -31,6 +31,19 @@
# create share
cls.share = cls.create_share(share_type_id=cls.share_type_id)
+ def _verify_share_metadata(self, share, md):
+
+ # get metadata of share
+ metadata = self.shares_client.get_metadata(share["id"])['metadata']
+
+ # verify metadata
+ self.assertEqual(md, metadata)
+
+ # verify metadata items
+ for key in md:
+ get_value = self.shares_client.get_metadata_item(share["id"], key)
+ self.assertEqual(md[key], get_value[key])
+
@decorators.idempotent_id('9070249f-6e94-4a38-a036-08debee547c3')
@tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
def test_set_metadata_in_share_creation(self):
@@ -42,11 +55,8 @@
metadata=md,
cleanup_in_class=False)
- # get metadata of share
- metadata = self.shares_client.get_metadata(share["id"])['metadata']
-
# verify metadata
- self.assertEqual(md, metadata)
+ self._verify_share_metadata(share, md)
@decorators.idempotent_id('2725ab8e-cc04-4032-9393-74726ba43eb7')
@tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
@@ -61,16 +71,8 @@
# set metadata
self.shares_client.set_metadata(share["id"], md)
- # read metadata
- get_md = self.shares_client.get_metadata(share["id"])['metadata']
-
# verify metadata
- self.assertEqual(md, get_md)
-
- # verify metadata items
- for key in md:
- get_value = self.shares_client.get_metadata_item(share["id"], key)
- self.assertEqual(md[key], get_value[key])
+ self._verify_share_metadata(share, md)
# delete metadata
for key in md.keys():
@@ -78,7 +80,73 @@
# verify deletion of metadata
get_metadata = self.shares_client.get_metadata(share["id"])['metadata']
- self.assertEqual({}, get_metadata)
+ self.assertEmpty(get_metadata)
+
+ @decorators.idempotent_id('4e5f8159-62b6-4d5c-f729-d8b1f029d7de')
+ @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
+ def test_set_metadata_not_delete_pre_metadata(self):
+ md1 = {u"key9": u"value9", u"key10": u"value10", }
+ md2 = {u"key11": u"value11", u"key12": u"value12", }
+
+ # create share
+ share = self.create_share(share_type_id=self.share_type_id,
+ cleanup_in_class=False)
+
+ # set metadata
+ self.shares_client.set_metadata(share["id"], md1)
+
+ # verify metadata
+ self._verify_share_metadata(share, md1)
+
+ # set metadata again
+ self.shares_client.set_metadata(share["id"], md2)
+
+ # verify metadata
+ md1.update(md2)
+ md = md1
+
+ # verify metadata
+ self._verify_share_metadata(share, md)
+
+ # delete metadata
+ for key in md.keys():
+ self.shares_client.delete_metadata(share["id"], key)
+
+ # verify deletion of metadata
+ get_metadata = self.shares_client.get_metadata(share["id"])['metadata']
+ self.assertEmpty(get_metadata)
+
+ @decorators.idempotent_id('2ec70ba5-050b-3b17-c862-c149e53543c0')
+ @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
+ def test_set_metadata_key_already_exist(self):
+ md1 = {u"key9": u"value9", u"key10": u"value10", }
+ md2 = {u"key9": u"value13", u"key11": u"value11", }
+
+ # create share
+ share = self.create_share(share_type_id=self.share_type_id,
+ cleanup_in_class=False)
+
+ # set metadata
+ self.shares_client.set_metadata(share["id"], md1)
+
+ # verify metadata
+ self._verify_share_metadata(share, md1)
+
+ # set metadata again
+ self.shares_client.set_metadata(share["id"], md2)
+
+ # verify metadata
+ md = {u"key9": u"value13", u"key10": u"value10",
+ u"key11": u"value11"}
+ self._verify_share_metadata(share, md)
+
+ # delete metadata
+ for key in md.keys():
+ self.shares_client.delete_metadata(share["id"], key)
+
+ # verify deletion of metadata
+ get_metadata = self.shares_client.get_metadata(share["id"])['metadata']
+ self.assertEmpty(get_metadata)
@decorators.idempotent_id('c94851f4-2559-4712-9297-9912db1da7ff')
@tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
@@ -97,11 +165,8 @@
# update metadata
self.shares_client.update_all_metadata(share["id"], md2)
- # get metadata
- get_md = self.shares_client.get_metadata(share["id"])['metadata']
-
# verify metadata
- self.assertEqual(md2, get_md)
+ self._verify_share_metadata(share, md2)
@decorators.idempotent_id('698ba406-493f-4c69-a093-273676fed438')
@tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)