From de4bf8d29ed2008fb52c75b413b065abdf6a38e0 Mon Sep 17 00:00:00 2001 From: lkuchlan Date: Sun, 4 Sep 2022 11:19:34 +0300 Subject: [PATCH] Use ddt.named_data decorator to avoid random test names There are few tests that generate random test names because random parameters are given to the ddt.data decorator. In the ddt version number 1.6.0 there is a possibility to determine the name of the tests without relying on the given values. I think this could be a good solution for the randomly generated names. This change is being re-introduced as ddt version 1.6.0 is now usable in the downstream CI. The original change is: Iaf39f4a83e383fb9db7f519136b9169352ff84af The following change is also included: I4d274869e5e9e7800be44bccf7a2641b4a5febe8 Which replaces periods to underscores, a needed fix. Change-Id: Iaf39f4a83e383fb9db7f519136b9169352ff84ad --- .../tests/api/admin/test_share_types.py | 32 +++++++++++-------- .../tests/api/test_share_types_negative.py | 18 ++++++----- requirements.txt | 2 +- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/manila_tempest_tests/tests/api/admin/test_share_types.py b/manila_tempest_tests/tests/api/admin/test_share_types.py index 3d46c9e0..d23171ae 100644 --- a/manila_tempest_tests/tests/api/admin/test_share_types.py +++ b/manila_tempest_tests/tests/api/admin/test_share_types.py @@ -113,22 +113,26 @@ class ShareTypesAdminTest(base.BaseSharesAdminTest): @utils.skip_if_microversion_not_supported("2.50") @decorators.idempotent_id('a9af19e1-e789-4c4f-a39b-dd8df6ed00b1') @tc.attr(base.TAG_POSITIVE, base.TAG_API) - @ddt.data( - ('2.50', data_utils.rand_name("type_updated"), + @ddt.named_data( + ('2_50_name_description_public', '2.50', + data_utils.rand_name("type_updated"), 'description_updated', True), + ('2_50_name', '2.50', data_utils.rand_name("type_updated"), None, + None), + ('2_50_description_public', '2.50', None, 'description_updated', + None), + ('2_50_public', '2.50', None, None, True), + ('2_50', '2.50', None, None, False), + (f'{LATEST_MICROVERSION}_name_description_public', + LATEST_MICROVERSION, data_utils.rand_name("type_updated"), 'description_updated', True), - ('2.50', data_utils.rand_name("type_updated"), None, None), - ('2.50', None, 'description_updated', None), - ('2.50', None, None, True), - ('2.50', None, None, False), - (LATEST_MICROVERSION, data_utils.rand_name("type_updated"), - 'description_updated', True), - (LATEST_MICROVERSION, data_utils.rand_name("type_updated"), - None, None), - (LATEST_MICROVERSION, None, 'description_updated', None), - (LATEST_MICROVERSION, None, None, True), - (LATEST_MICROVERSION, None, None, False), + (f'{LATEST_MICROVERSION}_name', LATEST_MICROVERSION, + data_utils.rand_name("type_updated"), None, None), + (f'{LATEST_MICROVERSION}_description', LATEST_MICROVERSION, None, + 'description_updated', None), + (f'{LATEST_MICROVERSION}_public', LATEST_MICROVERSION, None, None, + True), + (LATEST_MICROVERSION, LATEST_MICROVERSION, None, None, False), ) - @ddt.unpack def test_share_type_create_update(self, version, st_name, st_description, st_is_public): name = data_utils.rand_name("tempest-manila") diff --git a/manila_tempest_tests/tests/api/test_share_types_negative.py b/manila_tempest_tests/tests/api/test_share_types_negative.py index 046af450..af4815f9 100644 --- a/manila_tempest_tests/tests/api/test_share_types_negative.py +++ b/manila_tempest_tests/tests/api/test_share_types_negative.py @@ -83,15 +83,17 @@ class ShareTypesNegativeTest(base.BaseSharesMixedTest): @utils.skip_if_microversion_not_supported("2.50") @decorators.idempotent_id('4a22945c-8988-43a1-88c9-eb86e6abcd8e') @tc.attr(base.TAG_NEGATIVE, base.TAG_API) - @ddt.data( - ('2.50', '', None, None), - (LATEST_MICROVERSION, '', None, None), - ('2.50', None, None, 'not_bool'), - (LATEST_MICROVERSION, None, None, 'not_bool'), - ('2.50', None, generate_long_description(256), None), - (LATEST_MICROVERSION, None, generate_long_description(256), None), + @ddt.named_data( + ('2_50', '2.50', '', None, None), + (LATEST_MICROVERSION, LATEST_MICROVERSION, '', None, None), + ('2_50_bad_public', '2.50', None, None, 'not_bool'), + (f'{LATEST_MICROVERSION}_bad_public', LATEST_MICROVERSION, None, None, + 'not_bool'), + ('2_50_description', '2.50', None, generate_long_description(256), + None), + (f'{LATEST_MICROVERSION}_description', LATEST_MICROVERSION, None, + generate_long_description(256), None), ) - @ddt.unpack def test_share_type_update_bad_request( self, version, st_name, st_description, st_is_public): st_id = self.st['id'] diff --git a/requirements.txt b/requirements.txt index 95ad247f..108bbeef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,6 +4,6 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -ddt>=1.0.1 # MIT +ddt>=1.6.0 # MIT oslo.log>=3.36.0 # Apache-2.0 tempest>=31.1.0 # Apache-2.0