Source code for volume.admin.test_group_type_specs
# Copyright 2017 FiberHome Telecommunication Technologies CO.,LTD
# All Rights Reserved.
#
# 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.
from tempest.api.volume import base
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
[docs]
class GroupTypeSpecsTest(base.BaseVolumeAdminTest):
"""Test group type specs"""
volume_min_microversion = '3.11'
volume_max_microversion = 'latest'
[docs]
@decorators.idempotent_id('bb4e30d0-de6e-4f4d-866c-dcc48d023b4e')
def test_group_type_specs_create_show_update_list_delete(self):
"""Test create/show/update/list/delete group type specs"""
# Create new group type
group_type = self.create_group_type()
# Create new group type specs
create_specs = {
"key1": "value1",
"key2": "value2"
}
body = self.admin_group_types_client.create_or_update_group_type_specs(
group_type['id'], create_specs)['group_specs']
self.assertEqual(create_specs, body)
# Create a new group type spec and update an existing group type spec
update_specs = {
"key2": "value2-updated",
"key3": "value3"
}
body = self.admin_group_types_client.create_or_update_group_type_specs(
group_type['id'], update_specs)['group_specs']
self.assertEqual(update_specs, body)
# Show specified item of group type specs
spec_keys = ['key2', 'key3']
for key in spec_keys:
body = self.admin_group_types_client.show_group_type_specs_item(
group_type['id'], key)
self.assertIn(key, body)
self.assertEqual(update_specs[key], body[key])
# Update specified item of group type specs
update_key = 'key3'
update_spec = {update_key: "value3-updated"}
body = self.admin_group_types_client.update_group_type_specs_item(
group_type['id'], update_key, update_spec)
self.assertEqual(update_spec, body)
# List all group type specs that created or updated above
list_specs = {}
list_specs.update(create_specs)
list_specs.update(update_specs)
list_specs.update(update_spec)
body = self.admin_group_types_client.list_group_type_specs(
group_type['id'])['group_specs']
self.assertEqual(list_specs, body)
# Delete specified item of group type specs
delete_keys = ['key1', 'key2', 'key3']
for it in delete_keys:
self.admin_group_types_client.delete_group_type_specs_item(
group_type['id'], it)
self.assertRaises(
lib_exc.NotFound,
self.admin_group_types_client.show_group_type_specs_item,
group_type['id'], it)