Files
manila-tempest-plugin/manila_tempest_tests/tests/api/test_snapshot_metadata_negative.py
Ivan Anfimov 885fd8a9e1 Remove unicode prefix from code
All strings are considered as unicode string from Python 3.

This patch drops the explicit unicode literal (u'...')
appearances from the unicode strings.

Change-Id: Ie62a19689529eb2de94096e5f757bfcfbe372040
Signed-off-by: Ivan Anfimov <lazekteam@gmail.com>
2025-07-08 16:19:04 +00:00

143 lines
6.2 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import ddt
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
from testtools import testcase as tc
from manila_tempest_tests.tests.api import base
from manila_tempest_tests import utils
CONF = config.CONF
LATEST_MICROVERSION = CONF.share.max_api_microversion
@ddt.ddt
class ShareSnapshotMetadataNegativeTest(base.BaseSharesMixedTest):
@classmethod
def skip_checks(cls):
super(ShareSnapshotMetadataNegativeTest, cls).skip_checks()
utils.check_skip_if_microversion_not_supported("2.73")
if not CONF.share.run_snapshot_tests:
raise cls.skipException('Snapshot tests are disabled.')
@classmethod
def resource_setup(cls):
super(ShareSnapshotMetadataNegativeTest, cls).resource_setup()
# create share_type
extra_specs = {}
if CONF.share.capability_snapshot_support:
extra_specs.update({'snapshot_support': True})
if CONF.share.capability_create_share_from_snapshot_support:
extra_specs.update({'create_share_from_snapshot_support': True})
cls.share_type = cls.create_share_type(extra_specs=extra_specs)
cls.share_type_id = cls.share_type['id']
# create share
cls.share_name = data_utils.rand_name("tempest-share-name")
cls.share_desc = data_utils.rand_name("tempest-share-description")
cls.metadata = {
'foo_key_share_1': 'foo_value_share_1',
'bar_key_share_1': 'foo_value_share_1',
}
cls.share = cls.create_share(
name=cls.share_name,
description=cls.share_desc,
metadata=cls.metadata,
share_type_id=cls.share_type_id,
)
cls.share_id = cls.share["id"]
# create snapshot
cls.snap_name = data_utils.rand_name("tempest-snapshot-name")
cls.snap_desc = data_utils.rand_name(
"tempest-snapshot-description")
cls.snap = cls.create_snapshot_wait_for_active(
cls.share_id, cls.snap_name, cls.snap_desc)
cls.snap_id = cls.snap['id']
@decorators.idempotent_id('8be4773b-6af9-413f-97e2-8acdb6149e7a')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API)
def test_try_set_metadata_to_unexisting_snapshot(self):
md = {"key1": "value1", "key2": "value2", }
self.assertRaises(lib_exc.NotFound,
self.shares_v2_client.set_metadata,
"wrong_snapshot_id", md, resource="snapshot")
@decorators.idempotent_id('03a7f6e9-de8b-4669-87e1-b179308b477d')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API)
def test_try_update_all_metadata_to_unexisting_snapshot(self):
md = {"key1": "value1", "key2": "value2", }
self.assertRaises(lib_exc.NotFound,
self.shares_v2_client.update_all_metadata,
"wrong_snapshot_id", md, resource="snapshot")
@decorators.idempotent_id('ef0afcc8-7b12-41bc-8aa1-4916ad4b4560')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_set_metadata_with_empty_key(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.set_metadata,
self.snap_id, {"": "value"}, resource="snapshot")
@decorators.idempotent_id('9f2aee7c-ebd6-4516-87f7-bd85453d74c9')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_upd_metadata_with_empty_key(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.update_all_metadata,
self.snap_id, {"": "value"}, resource="snapshot")
@decorators.idempotent_id('ef61255e-462c-49fe-8e94-ff3afafcccb3')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_set_metadata_with_too_big_key(self):
too_big_key = "x" * 256
md = {too_big_key: "value"}
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.set_metadata,
self.snap_id, md, resource="snapshot")
@decorators.idempotent_id('f896f354-6179-4abb-b0c5-7b7dc96f0870')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_upd_metadata_with_too_big_key(self):
too_big_key = "x" * 256
md = {too_big_key: "value"}
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.update_all_metadata,
self.snap_id, md, resource="snapshot")
@decorators.idempotent_id('1bf97c18-27df-4618-94f4-224d1a98bc0c')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_set_metadata_with_too_big_value(self):
too_big_value = "x" * 1024
md = {"key": too_big_value}
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.set_metadata,
self.snap_id, md, resource="snapshot")
@decorators.idempotent_id('2b9e08fa-b35d-4bfe-9137-e59ab50bd9ef')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_upd_metadata_with_too_big_value(self):
too_big_value = "x" * 1024
md = {"key": too_big_value}
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.update_all_metadata,
self.snap_id, md, resource="snapshot")
@decorators.idempotent_id('9afb381d-c48c-4c2c-a5b5-42463daef5a2')
@tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
def test_try_delete_unexisting_metadata(self):
self.assertRaises(lib_exc.NotFound,
self.shares_v2_client.delete_metadata,
self.snap_id, "wrong_key", resource="snapshot")