Adding description for testcases - image part2
When Tempest is used in customer site, often we are required to provide a testcase list including testcase names and descriptions. Now no this kind of doc is available, so we can add descriptions with the format of doc string for every testcase, so later we can generata such a testcase description list. There are hundreds of testcases missing descriptions, so we can add them gradually, and limit the modified files in one patch for the convenience of reviewing. Change-Id: I1467cd41abbafc0622f3c032bba4213f4f09c18d partially-implements: blueprint testcase-description
This commit is contained in:
parent
414f2116a0
commit
2ae7f55cb1
@ -19,9 +19,11 @@ from tempest.lib import exceptions as lib_exc
|
||||
|
||||
|
||||
class ImageMembersTest(base.BaseV1ImageMembersTest):
|
||||
"""Test image members"""
|
||||
|
||||
@decorators.idempotent_id('1d6ef640-3a20-4c84-8710-d95828fdb6ad')
|
||||
def test_add_image_member(self):
|
||||
"""Test adding member for image"""
|
||||
image = self._create_image()
|
||||
self.image_member_client.create_image_member(image, self.alt_tenant_id)
|
||||
body = self.image_member_client.list_image_members(image)
|
||||
@ -33,6 +35,7 @@ class ImageMembersTest(base.BaseV1ImageMembersTest):
|
||||
|
||||
@decorators.idempotent_id('6a5328a5-80e8-4b82-bd32-6c061f128da9')
|
||||
def test_get_shared_images(self):
|
||||
"""Test getting shared images"""
|
||||
image = self._create_image()
|
||||
self.image_member_client.create_image_member(image, self.alt_tenant_id)
|
||||
share_image = self._create_image()
|
||||
@ -47,6 +50,7 @@ class ImageMembersTest(base.BaseV1ImageMembersTest):
|
||||
|
||||
@decorators.idempotent_id('a76a3191-8948-4b44-a9d6-4053e5f2b138')
|
||||
def test_remove_member(self):
|
||||
"""Test removing member from image"""
|
||||
image_id = self._create_image()
|
||||
self.image_member_client.create_image_member(image_id,
|
||||
self.alt_tenant_id)
|
||||
|
@ -19,11 +19,12 @@ from tempest.lib import exceptions as lib_exc
|
||||
|
||||
|
||||
class ImageMembersNegativeTest(base.BaseV1ImageMembersTest):
|
||||
"""Negative tests of image members"""
|
||||
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('147a9536-18e3-45da-91ea-b037a028f364')
|
||||
def test_add_member_with_non_existing_image(self):
|
||||
# Add member with non existing image.
|
||||
"""Add member with non existing image"""
|
||||
non_exist_image = data_utils.rand_uuid()
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
self.image_member_client.create_image_member,
|
||||
@ -32,7 +33,7 @@ class ImageMembersNegativeTest(base.BaseV1ImageMembersTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('e1559f05-b667-4f1b-a7af-518b52dc0c0f')
|
||||
def test_delete_member_with_non_existing_image(self):
|
||||
# Delete member with non existing image.
|
||||
"""Delete member with non existing image"""
|
||||
non_exist_image = data_utils.rand_uuid()
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
self.image_member_client.delete_image_member,
|
||||
@ -41,7 +42,7 @@ class ImageMembersNegativeTest(base.BaseV1ImageMembersTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('f5720333-dd69-4194-bb76-d2f048addd56')
|
||||
def test_delete_member_with_non_existing_tenant(self):
|
||||
# Delete member with non existing tenant.
|
||||
"""Delete member from image with non existing tenant"""
|
||||
image_id = self._create_image()
|
||||
non_exist_tenant = data_utils.rand_uuid_hex()
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
@ -51,7 +52,10 @@ class ImageMembersNegativeTest(base.BaseV1ImageMembersTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('f25f89e4-0b6c-453b-a853-1f80b9d7ef26')
|
||||
def test_get_image_without_membership(self):
|
||||
# Image is hidden from another tenants.
|
||||
"""Get image without membership
|
||||
|
||||
Image is hidden from another tenants.
|
||||
"""
|
||||
image_id = self._create_image()
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
self.alt_img_cli.show_image,
|
||||
|
@ -57,7 +57,7 @@ class CreateRegisterImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('3027f8e6-3492-4a11-8575-c3293017af4d')
|
||||
def test_register_then_upload(self):
|
||||
# Register, then upload an image
|
||||
"""Register, then upload an image"""
|
||||
properties = {'prop1': 'val1'}
|
||||
container_format, disk_format = get_container_and_disk_format()
|
||||
image = self.create_image(name='New Name',
|
||||
@ -79,7 +79,7 @@ class CreateRegisterImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('69da74d9-68a9-404b-9664-ff7164ccb0f5')
|
||||
def test_register_remote_image(self):
|
||||
# Register a new remote image
|
||||
"""Register a new remote image"""
|
||||
container_format, disk_format = get_container_and_disk_format()
|
||||
body = self.create_image(name='New Remote Image',
|
||||
container_format=container_format,
|
||||
@ -96,6 +96,7 @@ class CreateRegisterImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('6d0e13a7-515b-460c-b91f-9f4793f09816')
|
||||
def test_register_http_image(self):
|
||||
"""Register a new image from an http image path url"""
|
||||
container_format, disk_format = get_container_and_disk_format()
|
||||
image = self.create_image(name='New Http Image',
|
||||
container_format=container_format,
|
||||
@ -108,7 +109,7 @@ class CreateRegisterImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('05b19d55-140c-40d0-b36b-fafd774d421b')
|
||||
def test_register_image_with_min_ram(self):
|
||||
# Register an image with min ram
|
||||
"""Register an image with min ram"""
|
||||
container_format, disk_format = get_container_and_disk_format()
|
||||
properties = {'prop1': 'val1'}
|
||||
body = self.create_image(name='New_image_with_min_ram',
|
||||
@ -213,7 +214,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('246178ab-3b33-4212-9a4b-a7fe8261794d')
|
||||
def test_index_no_params(self):
|
||||
# Simple test to see all fixture images returned
|
||||
"""Simple test to see all fixture images returned"""
|
||||
images_list = self.client.list_images()['images']
|
||||
image_list = [image['id'] for image in images_list]
|
||||
for image_id in self.created_images:
|
||||
@ -221,6 +222,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('f1755589-63d6-4468-b098-589820eb4031')
|
||||
def test_index_disk_format(self):
|
||||
"""Test listing images by disk format"""
|
||||
images_list = self.client.list_images(
|
||||
disk_format=self.disk_format_alt)['images']
|
||||
for image in images_list:
|
||||
@ -232,6 +234,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('2143655d-96d9-4bec-9188-8674206b4b3b')
|
||||
def test_index_container_format(self):
|
||||
"""Test listing images by container format"""
|
||||
images_list = self.client.list_images(
|
||||
container_format=self.container_format)['images']
|
||||
for image in images_list:
|
||||
@ -243,6 +246,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('feb32ac6-22bb-4a16-afd8-9454bb714b14')
|
||||
def test_index_max_size(self):
|
||||
"""Test listing images by max size"""
|
||||
images_list = self.client.list_images(size_max=42)['images']
|
||||
for image in images_list:
|
||||
self.assertLessEqual(image['size'], 42)
|
||||
@ -252,6 +256,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('6ffc16d0-4cbf-4401-95c8-4ac63eac34d8')
|
||||
def test_index_min_size(self):
|
||||
"""Test listing images by min size"""
|
||||
images_list = self.client.list_images(size_min=142)['images']
|
||||
for image in images_list:
|
||||
self.assertGreaterEqual(image['size'], 142)
|
||||
@ -261,6 +266,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('e5dc26d9-9aa2-48dd-bda5-748e1445da98')
|
||||
def test_index_status_active_detail(self):
|
||||
"""Test listing active images sorting by size in descending order"""
|
||||
images_list = self.client.list_images(detail=True,
|
||||
status='active',
|
||||
sort_key='size',
|
||||
@ -274,6 +280,7 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('097af10a-bae8-4342-bff4-edf89969ed2a')
|
||||
def test_index_name(self):
|
||||
"""Test listing images by its name"""
|
||||
images_list = self.client.list_images(
|
||||
detail=True,
|
||||
name='New Remote Image dup')['images']
|
||||
@ -285,6 +292,8 @@ class ListImagesTest(base.BaseV1ImageTest):
|
||||
|
||||
|
||||
class UpdateImageMetaTest(base.BaseV1ImageTest):
|
||||
"""Test image metadata"""
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(UpdateImageMetaTest, cls).resource_setup()
|
||||
@ -308,6 +317,7 @@ class UpdateImageMetaTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('01752c1c-0275-4de3-9e5b-876e44541928')
|
||||
def test_list_image_metadata(self):
|
||||
"""Test listing image metadata"""
|
||||
# All metadata key/value pairs for an image should be returned
|
||||
resp = self.client.check_image(self.image_id)
|
||||
resp_metadata = common_image.get_image_meta_from_headers(resp)
|
||||
@ -316,6 +326,7 @@ class UpdateImageMetaTest(base.BaseV1ImageTest):
|
||||
|
||||
@decorators.idempotent_id('d6d7649c-08ce-440d-9ea7-e3dda552f33c')
|
||||
def test_update_image_metadata(self):
|
||||
"""Test updating image metadata"""
|
||||
# The metadata for the image should match the updated values
|
||||
req_metadata = {'key1': 'alt1', 'key2': 'value2'}
|
||||
resp = self.client.check_image(self.image_id)
|
||||
|
@ -26,7 +26,10 @@ class CreateDeleteImagesNegativeTest(base.BaseV1ImageTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('036ede36-6160-4463-8c01-c781eee6369d')
|
||||
def test_register_with_invalid_container_format(self):
|
||||
# Negative tests for invalid data supplied to POST /images
|
||||
"""Create image with invalid container format
|
||||
|
||||
Negative tests for invalid data supplied to POST /images
|
||||
"""
|
||||
self.assertRaises(lib_exc.BadRequest, self.client.create_image,
|
||||
headers={'x-image-meta-name': 'test',
|
||||
'x-image-meta-container_format': 'wrong',
|
||||
@ -35,6 +38,7 @@ class CreateDeleteImagesNegativeTest(base.BaseV1ImageTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('993face5-921d-4e84-aabf-c1bba4234a67')
|
||||
def test_register_with_invalid_disk_format(self):
|
||||
"""Create image with invalid disk format"""
|
||||
self.assertRaises(lib_exc.BadRequest, self.client.create_image,
|
||||
headers={'x-image-meta-name': 'test',
|
||||
'x-image-meta-container_format': 'bare',
|
||||
@ -43,7 +47,7 @@ class CreateDeleteImagesNegativeTest(base.BaseV1ImageTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('ec652588-7e3c-4b67-a2f2-0fa96f57c8fc')
|
||||
def test_delete_non_existent_image(self):
|
||||
# Return an error while trying to delete a non-existent image
|
||||
"""Return an error while trying to delete a non-existent image"""
|
||||
|
||||
non_existent_image_id = data_utils.rand_uuid()
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_image,
|
||||
@ -52,13 +56,13 @@ class CreateDeleteImagesNegativeTest(base.BaseV1ImageTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('04f72aa3-fcec-45a3-81a3-308ef7cc82bc')
|
||||
def test_delete_image_blank_id(self):
|
||||
# Return an error while trying to delete an image with blank Id
|
||||
"""Return an error while trying to delete an image with blank Id"""
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_image, '')
|
||||
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('950e5054-a3c7-4dee-ada5-e576f1087abd')
|
||||
def test_delete_image_non_hex_string_id(self):
|
||||
# Return an error while trying to delete an image with non hex id
|
||||
"""Return an error while trying to delete an image with non hex id"""
|
||||
invalid_image_id = data_utils.rand_uuid()[:-1] + "j"
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_image,
|
||||
invalid_image_id)
|
||||
@ -66,13 +70,13 @@ class CreateDeleteImagesNegativeTest(base.BaseV1ImageTest):
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('4ed757cd-450c-44b1-9fd1-c819748c650d')
|
||||
def test_delete_image_negative_image_id(self):
|
||||
# Return an error while trying to delete an image with negative id
|
||||
"""Return an error while trying to delete an image with negative id"""
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_image, -1)
|
||||
|
||||
@decorators.attr(type=['negative'])
|
||||
@decorators.idempotent_id('a4a448ab-3db2-4d2d-b9b2-6a1271241dfe')
|
||||
def test_delete_image_id_over_character_limit(self):
|
||||
# Return an error while trying to delete image with id over limit
|
||||
"""Return an error while trying to delete image with id over limit"""
|
||||
overlimit_image_id = data_utils.rand_uuid() + "1"
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_image,
|
||||
overlimit_image_id)
|
||||
|
@ -30,6 +30,7 @@ class MetadataNamespaceObjectsTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('b1a3775e-3b5c-4f6a-a3b4-1ba3574ae718')
|
||||
def test_create_update_delete_meta_namespace_objects(self):
|
||||
"""Test creating/updating/deleting image metadata namespace objects"""
|
||||
# Create a namespace
|
||||
namespace = self.create_namespace()
|
||||
# Create a namespace object
|
||||
@ -52,6 +53,7 @@ class MetadataNamespaceObjectsTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('a2a3615e-3b5c-3f6a-a2b1-1ba3574ae738')
|
||||
def test_list_meta_namespace_objects(self):
|
||||
"""Test listing image metadata namespace objects"""
|
||||
# Create a namespace object
|
||||
namespace = self.create_namespace()
|
||||
meta_namespace_object = self._create_namespace_object(namespace)
|
||||
@ -64,6 +66,7 @@ class MetadataNamespaceObjectsTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('b1a3674e-3b4c-3f6a-a3b4-1ba3573ca768')
|
||||
def test_show_meta_namespace_objects(self):
|
||||
"""Test showing image metadata namespace object"""
|
||||
# Create a namespace object
|
||||
namespace = self.create_namespace()
|
||||
namespace_object = self._create_namespace_object(namespace)
|
||||
|
@ -20,6 +20,7 @@ class MetadataNamespacePropertiesTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('b1a3765e-3a5d-4f6d-a3a7-3ca3476ae768')
|
||||
def test_basic_meta_def_namespace_property(self):
|
||||
"""Test operations of image metadata definition namespace property"""
|
||||
# Get the available resource types and use one resource_type
|
||||
body = self.resource_types_client.list_resource_types()
|
||||
resource_name = body['resource_types'][0]['name']
|
||||
|
@ -43,6 +43,7 @@ class MetadataNamespaceTagsTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('a2a3765e-3a6d-4f6d-a3a7-3cc3476aa876')
|
||||
def test_create_list_delete_namespace_tags(self):
|
||||
"""Test creating/listing/deleting image metadata namespace tags"""
|
||||
# Create a namespace
|
||||
namespace = self.create_namespace()
|
||||
self._create_namespace_tags(namespace)
|
||||
@ -62,6 +63,7 @@ class MetadataNamespaceTagsTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('a2a3765e-1a2c-3f6d-a3a7-3cc3466ab875')
|
||||
def test_create_update_delete_tag(self):
|
||||
"""Test creating/updating/deleting image metadata namespace tag"""
|
||||
# Create a namespace
|
||||
namespace = self.create_namespace()
|
||||
self._create_namespace_tags(namespace)
|
||||
|
@ -25,6 +25,7 @@ class MetadataNamespacesTest(base.BaseV2ImageTest):
|
||||
|
||||
@decorators.idempotent_id('319b765e-7f3d-4b3d-8b37-3ca3876ee768')
|
||||
def test_basic_metadata_definition_namespaces(self):
|
||||
"""Test operations of image metadata definition namespaces"""
|
||||
# get the available resource types and use one resource_type
|
||||
body = self.resource_types_client.list_resource_types()
|
||||
resource_name = body['resource_types'][0]['name']
|
||||
|
@ -18,64 +18,64 @@ from tempest.lib import decorators
|
||||
|
||||
|
||||
class MetadataSchemaTest(base.BaseV2ImageTest):
|
||||
"""Test to get metadata schema"""
|
||||
"""Test to get image metadata schema"""
|
||||
|
||||
@decorators.idempotent_id('e9e44891-3cb8-3b40-a532-e0a39fea3dab')
|
||||
def test_get_metadata_namespace_schema(self):
|
||||
# Test to get namespace schema
|
||||
"""Test to get image namespace schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/namespace")
|
||||
self.assertEqual("namespace", body['name'])
|
||||
|
||||
@decorators.idempotent_id('ffe44891-678b-3ba0-a3e2-e0a3967b3aeb')
|
||||
def test_get_metadata_namespaces_schema(self):
|
||||
# Test to get namespaces schema
|
||||
"""Test to get image namespaces schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/namespaces")
|
||||
self.assertEqual("namespaces", body['name'])
|
||||
|
||||
@decorators.idempotent_id('fde34891-678b-3b40-ae32-e0a3e67b6beb')
|
||||
def test_get_metadata_resource_type_schema(self):
|
||||
# Test to get resource_type schema
|
||||
"""Test to get image resource_type schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/resource_type")
|
||||
self.assertEqual("resource_type_association", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dfe4a891-b38b-3bf0-a3b2-e03ee67b3a3a')
|
||||
def test_get_metadata_resources_types_schema(self):
|
||||
# Test to get resource_types schema
|
||||
"""Test to get image resource_types schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/resource_types")
|
||||
self.assertEqual("resource_type_associations", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dff4a891-b38b-3bf0-a3b2-e03ee67b3a3b')
|
||||
def test_get_metadata_object_schema(self):
|
||||
# Test to get object schema
|
||||
"""Test to get image object schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/object")
|
||||
self.assertEqual("object", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dee4a891-b38b-3bf0-a3b2-e03ee67b3a3c')
|
||||
def test_get_metadata_objects_schema(self):
|
||||
# Test to get objects schema
|
||||
"""Test to get image objects schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/objects")
|
||||
self.assertEqual("objects", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dae4a891-b38b-3bf0-a3b2-e03ee67b3a3d')
|
||||
def test_get_metadata_property_schema(self):
|
||||
# Test to get property schema
|
||||
"""Test to get image property schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/property")
|
||||
self.assertEqual("property", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dce4a891-b38b-3bf0-a3b2-e03ee67b3a3e')
|
||||
def test_get_metadata_properties_schema(self):
|
||||
# Test to get properties schema
|
||||
"""Test to get image properties schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/properties")
|
||||
self.assertEqual("properties", body['name'])
|
||||
|
||||
@decorators.idempotent_id('dde4a891-b38b-3bf0-a3b2-e03ee67b3a3e')
|
||||
def test_get_metadata_tag_schema(self):
|
||||
# Test to get tag schema
|
||||
"""Test to get image tag schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/tag")
|
||||
self.assertEqual("tag", body['name'])
|
||||
|
||||
@decorators.idempotent_id('cde4a891-b38b-3bf0-a3b2-e03ee67b3a3a')
|
||||
def test_get_metadata_tags_schema(self):
|
||||
# Test to get tags schema
|
||||
"""Test to get image tags schema"""
|
||||
body = self.schemas_client.show_schema("metadefs/tags")
|
||||
self.assertEqual("tags", body['name'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user