From 402327f2e4859aef95da677fcf34204b3cc8744e Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 7 May 2024 16:54:40 +0100 Subject: [PATCH] tests: Migrate to 'set_xxx_api_version' helpers Clean things up somewhat. Change-Id: I868f496fc8285a28e8fd551377f2ae6228051d19 Signed-off-by: Stephen Finucane --- openstackclient/compute/v2/server.py | 6 +- .../tests/unit/compute/v2/test_aggregate.py | 16 +- .../tests/unit/compute/v2/test_flavor.py | 111 +++-- .../tests/unit/compute/v2/test_hypervisor.py | 55 ++- .../tests/unit/compute/v2/test_keypair.py | 89 ++-- .../tests/unit/compute/v2/test_server.py | 379 +++++++----------- .../unit/compute/v2/test_server_event.py | 51 +-- .../unit/compute/v2/test_server_group.py | 57 ++- .../unit/compute/v2/test_server_migration.py | 107 ++--- .../unit/compute/v2/test_server_volume.py | 51 +-- .../tests/unit/compute/v2/test_service.py | 80 ++-- .../volume/v3/test_block_storage_cleanup.py | 5 +- .../volume/v3/test_block_storage_cluster.py | 21 +- .../volume/v3/test_block_storage_log_level.py | 16 +- .../volume/v3/test_block_storage_manage.py | 39 +- .../v3/test_block_storage_resource_filter.py | 38 +- .../tests/unit/volume/v3/test_volume.py | 49 +-- .../unit/volume/v3/test_volume_attachment.py | 29 +- .../unit/volume/v3/test_volume_backup.py | 64 +-- .../tests/unit/volume/v3/test_volume_group.py | 39 +- .../volume/v3/test_volume_group_snapshot.py | 48 +-- .../unit/volume/v3/test_volume_group_type.py | 27 +- .../unit/volume/v3/test_volume_message.py | 19 +- .../volume/v3/test_volume_transfer_request.py | 5 +- .../tests/unit/volume/v3/test_volume_type.py | 9 +- 25 files changed, 578 insertions(+), 832 deletions(-) diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index e7a135e062..42caafead4 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -4418,7 +4418,7 @@ class SetServer(command.Command): ) if parsed_args.description: - if server.api_version < api_versions.APIVersion("2.19"): + if compute_client.api_version < api_versions.APIVersion("2.19"): msg = _( '--os-compute-api-version 2.19 or greater is required to ' 'support the --description option' @@ -4426,7 +4426,7 @@ class SetServer(command.Command): raise exceptions.CommandError(msg) if parsed_args.tags: - if server.api_version < api_versions.APIVersion('2.26'): + if compute_client.api_version < api_versions.APIVersion('2.26'): msg = _( '--os-compute-api-version 2.26 or greater is required to ' 'support the --tag option' @@ -4434,7 +4434,7 @@ class SetServer(command.Command): raise exceptions.CommandError(msg) if parsed_args.hostname: - if server.api_version < api_versions.APIVersion('2.90'): + if compute_client.api_version < api_versions.APIVersion('2.90'): msg = _( '--os-compute-api-version 2.90 or greater is required to ' 'support the --hostname option' diff --git a/openstackclient/tests/unit/compute/v2/test_aggregate.py b/openstackclient/tests/unit/compute/v2/test_aggregate.py index a6709f7085..6cfe5bc79a 100644 --- a/openstackclient/tests/unit/compute/v2/test_aggregate.py +++ b/openstackclient/tests/unit/compute/v2/test_aggregate.py @@ -17,7 +17,6 @@ from unittest import mock from unittest.mock import call from openstack import exceptions as sdk_exceptions -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions @@ -608,8 +607,9 @@ class TestAggregateCacheImage(TestAggregate): self.cmd = aggregate.CacheImageForAggregate(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_aggregate_not_supported(self, sm_mock): + def test_aggregate_cache_pre_v281(self): + self.set_compute_api_version('2.80') + arglist = ['ag1', 'im1'] verifylist = [ ('aggregate', 'ag1'), @@ -620,8 +620,9 @@ class TestAggregateCacheImage(TestAggregate): exceptions.CommandError, self.cmd.take_action, parsed_args ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_aggregate_add_single_image(self, sm_mock): + def test_aggregate_cache_add_single_image(self): + self.set_compute_api_version('2.81') + arglist = ['ag1', 'im1'] verifylist = [ ('aggregate', 'ag1'), @@ -636,8 +637,9 @@ class TestAggregateCacheImage(TestAggregate): self.fake_ag.id, [self.images[0].id] ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_aggregate_add_multiple_images(self, sm_mock): + def test_aggregate_cache_add_multiple_images(self): + self.set_compute_api_version('2.81') + arglist = [ 'ag1', 'im1', diff --git a/openstackclient/tests/unit/compute/v2/test_flavor.py b/openstackclient/tests/unit/compute/v2/test_flavor.py index a6e302c1fd..1a93b5fc83 100644 --- a/openstackclient/tests/unit/compute/v2/test_flavor.py +++ b/openstackclient/tests/unit/compute/v2/test_flavor.py @@ -16,7 +16,6 @@ from unittest import mock from openstack.compute.v2 import flavor as _flavor from openstack import exceptions as sdk_exceptions -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions @@ -118,6 +117,8 @@ class TestFlavorCreate(TestFlavor): self.assertCountEqual(self.data, data) def test_flavor_create_all_options(self): + self.set_compute_api_version('2.55') + arglist = [ '--id', self.flavor.id, @@ -184,22 +185,19 @@ class TestFlavorCreate(TestFlavor): expected_flavor ) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ): - columns, data = self.cmd.take_action(parsed_args) - self.compute_sdk_client.create_flavor.assert_called_once_with( - **args - ) - self.compute_sdk_client.create_flavor_extra_specs.assert_called_once_with( - create_flavor, props - ) - self.compute_sdk_client.get_flavor_access.assert_not_called() + columns, data = self.cmd.take_action(parsed_args) + self.compute_sdk_client.create_flavor.assert_called_once_with(**args) + self.compute_sdk_client.create_flavor_extra_specs.assert_called_once_with( + create_flavor, props + ) + self.compute_sdk_client.get_flavor_access.assert_not_called() self.assertEqual(self.columns, columns) self.assertCountEqual(tuple(cmp_data), data) def test_flavor_create_other_options(self): + self.set_compute_api_version('2.55') + self.flavor.is_public = False arglist = [ '--id', @@ -272,10 +270,8 @@ class TestFlavorCreate(TestFlavor): expected_flavor ) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ): - columns, data = self.cmd.take_action(parsed_args) + columns, data = self.cmd.take_action(parsed_args) + self.compute_sdk_client.create_flavor.assert_called_once_with(**args) self.compute_sdk_client.flavor_add_tenant_access.assert_called_with( self.flavor.id, @@ -314,7 +310,9 @@ class TestFlavorCreate(TestFlavor): verifylist, ) - def test_flavor_create_with_description_api_newer(self): + def test_flavor_create_with_description(self): + self.set_compute_api_version('2.55') + arglist = [ '--id', self.flavor.id, @@ -348,10 +346,8 @@ class TestFlavorCreate(TestFlavor): ('name', self.flavor.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ): - columns, data = self.cmd.take_action(parsed_args) + + columns, data = self.cmd.take_action(parsed_args) args = { 'name': self.flavor.name, @@ -371,7 +367,9 @@ class TestFlavorCreate(TestFlavor): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data_private, data) - def test_flavor_create_with_description_api_older(self): + def test_flavor_create_with_description_pre_v255(self): + self.set_compute_api_version('2.54') + arglist = [ '--id', self.flavor.id, @@ -391,12 +389,9 @@ class TestFlavorCreate(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=False - ): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestFlavorDelete(TestFlavor): @@ -887,7 +882,9 @@ class TestFlavorSet(TestFlavor): self.compute_sdk_client.flavor_add_tenant_access.assert_not_called() self.assertIsNone(result) - def test_flavor_set_description_api_newer(self): + def test_flavor_set_description(self): + self.set_compute_api_version('2.55') + arglist = [ '--description', 'description', @@ -899,16 +896,15 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ): - result = self.cmd.take_action(parsed_args) - self.compute_sdk_client.update_flavor.assert_called_with( - flavor=self.flavor.id, description='description' - ) - self.assertIsNone(result) + result = self.cmd.take_action(parsed_args) + self.compute_sdk_client.update_flavor.assert_called_with( + flavor=self.flavor.id, description='description' + ) + self.assertIsNone(result) + + def test_flavor_set_description_pre_v254(self): + self.set_compute_api_version('2.54') - def test_flavor_set_description_api_older(self): arglist = [ '--description', 'description', @@ -920,14 +916,13 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=False - ): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) + + def test_flavor_set_description_using_name(self): + self.set_compute_api_version('2.55') - def test_flavor_set_description_using_name_api_newer(self): arglist = [ '--description', 'description', @@ -939,16 +934,15 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ): - result = self.cmd.take_action(parsed_args) - self.compute_sdk_client.update_flavor.assert_called_with( - flavor=self.flavor.id, description='description' - ) - self.assertIsNone(result) + result = self.cmd.take_action(parsed_args) + self.compute_sdk_client.update_flavor.assert_called_with( + flavor=self.flavor.id, description='description' + ) + self.assertIsNone(result) + + def test_flavor_set_description_using_name_pre_v255(self): + self.set_compute_api_version('2.54') - def test_flavor_set_description_using_name_api_older(self): arglist = [ '--description', 'description', @@ -960,12 +954,9 @@ class TestFlavorSet(TestFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - sdk_utils, 'supports_microversion', return_value=False - ): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestFlavorShow(TestFlavor): diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor.py b/openstackclient/tests/unit/compute/v2/test_hypervisor.py index 0499ae59e8..ba3d58e8d1 100644 --- a/openstackclient/tests/unit/compute/v2/test_hypervisor.py +++ b/openstackclient/tests/unit/compute/v2/test_hypervisor.py @@ -11,13 +11,10 @@ # 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 json -from unittest import mock from novaclient import exceptions as nova_exceptions -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions @@ -164,10 +161,7 @@ class TestHypervisorList(compute_fakes.TestComputev2): exceptions.NotFound, self.cmd.take_action, parsed_args ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_hypervisor_list_with_matching_and_pagination_options( - self, sm_mock - ): + def test_hypervisor_list_with_matching_and_pagination_options(self): arglist = [ '--matching', self.hypervisors[0].name, @@ -191,8 +185,7 @@ class TestHypervisorList(compute_fakes.TestComputev2): '--matching is not compatible with --marker or --limit', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_hypervisor_list_long_option(self, sm_mock): + def test_hypervisor_list_long_option(self): arglist = [ '--long', ] @@ -210,8 +203,9 @@ class TestHypervisorList(compute_fakes.TestComputev2): self.assertEqual(self.columns_long, columns) self.assertEqual(self.data_long, tuple(data)) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_hypervisor_list_with_limit(self, sm_mock): + def test_hypervisor_list_with_limit(self): + self.set_compute_api_version('2.33') + arglist = [ '--limit', '1', @@ -227,8 +221,9 @@ class TestHypervisorList(compute_fakes.TestComputev2): limit=1, details=True ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_hypervisor_list_with_limit_pre_v233(self, sm_mock): + def test_hypervisor_list_with_limit_pre_v233(self): + self.set_compute_api_version('2.32') + arglist = [ '--limit', '1', @@ -246,8 +241,9 @@ class TestHypervisorList(compute_fakes.TestComputev2): '--os-compute-api-version 2.33 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_hypervisor_list_with_marker(self, sm_mock): + def test_hypervisor_list_with_marker(self): + self.set_compute_api_version('2.33') + arglist = [ '--marker', 'test_hyp', @@ -263,8 +259,9 @@ class TestHypervisorList(compute_fakes.TestComputev2): marker='test_hyp', details=True ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_hypervisor_list_with_marker_pre_v233(self, sm_mock): + def test_hypervisor_list_with_marker_pre_v233(self): + self.set_compute_api_version('2.32') + arglist = [ '--marker', 'test_hyp', @@ -413,8 +410,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2): # Get the command object to test self.cmd = hypervisor.ShowHypervisor(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_hypervisor_show(self, sm_mock): + def test_hypervisor_show(self): + self.set_compute_api_version('2.88') + arglist = [ self.hypervisor.name, ] @@ -431,10 +429,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2): self.assertEqual(self.columns_v288, columns) self.assertCountEqual(self.data_v288, data) - @mock.patch.object( - sdk_utils, 'supports_microversion', side_effect=[False, True, False] - ) - def test_hypervisor_show_pre_v288(self, sm_mock): + def test_hypervisor_show_pre_v288(self): + self.set_compute_api_version('2.87') + arglist = [ self.hypervisor.name, ] @@ -451,8 +448,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_hypervisor_show_pre_v228(self, sm_mock): + def test_hypervisor_show_pre_v228(self): + self.set_compute_api_version('2.27') + # before microversion 2.28, nova returned a stringified version of this # field self.hypervisor.cpu_info = json.dumps(self.hypervisor.cpu_info) @@ -474,10 +472,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object( - sdk_utils, 'supports_microversion', side_effect=[False, True, False] - ) - def test_hypervisor_show_uptime_not_implemented(self, sm_mock): + def test_hypervisor_show_uptime_not_implemented(self): + self.set_compute_api_version('2.87') + arglist = [ self.hypervisor.name, ] diff --git a/openstackclient/tests/unit/compute/v2/test_keypair.py b/openstackclient/tests/unit/compute/v2/test_keypair.py index b7d46aebeb..d6be7d0d60 100644 --- a/openstackclient/tests/unit/compute/v2/test_keypair.py +++ b/openstackclient/tests/unit/compute/v2/test_keypair.py @@ -17,7 +17,6 @@ from unittest import mock from unittest.mock import call import uuid -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.compute.v2 import keypair @@ -175,8 +174,9 @@ class TestKeypairCreate(TestKeypair): self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_create_with_key_type(self, sm_mock): + def test_keypair_create_with_key_type(self): + self.set_compute_api_version('2.2') + for key_type in ['x509', 'ssh']: self.compute_sdk_client.create_keypair.return_value = self.keypair @@ -220,8 +220,9 @@ class TestKeypairCreate(TestKeypair): self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_create_with_key_type_pre_v22(self, sm_mock): + def test_keypair_create_with_key_type_pre_v22(self): + self.set_compute_api_version('2.1') + for key_type in ['x509', 'ssh']: arglist = [ '--public-key', @@ -257,8 +258,9 @@ class TestKeypairCreate(TestKeypair): '_generate_keypair', return_value=keypair.Keypair('private', 'public'), ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_key_pair_create_with_user(self, sm_mock, mock_generate): + def test_key_pair_create_with_user(self, mock_generate): + self.set_compute_api_version('2.10') + arglist = [ '--user', identity_fakes.user_name, @@ -281,8 +283,9 @@ class TestKeypairCreate(TestKeypair): self.assertEqual({}, columns) self.assertEqual({}, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_key_pair_create_with_user_pre_v210(self, sm_mock): + def test_key_pair_create_with_user_pre_v210(self): + self.set_compute_api_version('2.9') + arglist = [ '--user', identity_fakes.user_name, @@ -368,8 +371,9 @@ class TestKeypairDelete(TestKeypair): calls.append(call(k, ignore_missing=False)) self.compute_sdk_client.delete_keypair.assert_has_calls(calls) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_delete_with_user(self, sm_mock): + def test_keypair_delete_with_user(self): + self.set_compute_api_version('2.10') + arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name] verifylist = [ ('user', identity_fakes.user_name), @@ -386,8 +390,9 @@ class TestKeypairDelete(TestKeypair): ignore_missing=False, ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_delete_with_user_pre_v210(self, sm_mock): + def test_keypair_delete_with_user_pre_v210(self): + self.set_compute_api_version('2.9') + arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name] verifylist = [ ('user', identity_fakes.user_name), @@ -415,8 +420,7 @@ class TestKeypairList(TestKeypair): # Get the command object to test self.cmd = keypair.ListKeypair(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_list_no_options(self, sm_mock): + def test_keypair_list_no_options(self): arglist = [] verifylist = [] @@ -437,8 +441,9 @@ class TestKeypairList(TestKeypair): tuple(data), ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_list_v22(self, sm_mock): + def test_keypair_list_v22(self): + self.set_compute_api_version('2.22') + arglist = [] verifylist = [] @@ -465,8 +470,9 @@ class TestKeypairList(TestKeypair): tuple(data), ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_list_with_user(self, sm_mock): + def test_keypair_list_with_user(self): + self.set_compute_api_version('2.35') + users_mock = self.identity_client.users users_mock.reset_mock() users_mock.get.return_value = fakes.FakeResource( @@ -503,8 +509,9 @@ class TestKeypairList(TestKeypair): tuple(data), ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_list_with_user_pre_v210(self, sm_mock): + def test_keypair_list_with_user_pre_v210(self): + self.set_compute_api_version('2.9') + arglist = [ '--user', identity_fakes.user_name, @@ -521,8 +528,9 @@ class TestKeypairList(TestKeypair): '--os-compute-api-version 2.10 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_list_with_project(self, sm_mock): + def test_keypair_list_with_project(self): + self.set_compute_api_version('2.35') + projects_mock = self.identity_client.tenants projects_mock.reset_mock() projects_mock.get.return_value = fakes.FakeResource( @@ -565,8 +573,9 @@ class TestKeypairList(TestKeypair): tuple(data), ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_list_with_project_pre_v210(self, sm_mock): + def test_keypair_list_with_project_pre_v210(self): + self.set_compute_api_version('2.9') + arglist = ['--project', identity_fakes.project_name] verifylist = [('project', identity_fakes.project_name)] @@ -594,10 +603,9 @@ class TestKeypairList(TestKeypair): None, ) - @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True) - ) def test_keypair_list_with_limit(self): + self.set_compute_api_version('2.35') + arglist = [ '--limit', '1', @@ -611,10 +619,9 @@ class TestKeypairList(TestKeypair): self.compute_sdk_client.keypairs.assert_called_with(limit=1) - @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False) - ) def test_keypair_list_with_limit_pre_v235(self): + self.set_compute_api_version('2.34') + arglist = [ '--limit', '1', @@ -632,10 +639,9 @@ class TestKeypairList(TestKeypair): '--os-compute-api-version 2.35 or greater is required', str(ex) ) - @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=True) - ) def test_keypair_list_with_marker(self): + self.set_compute_api_version('2.35') + arglist = [ '--marker', 'test_kp', @@ -649,10 +655,9 @@ class TestKeypairList(TestKeypair): self.compute_sdk_client.keypairs.assert_called_with(marker='test_kp') - @mock.patch.object( - sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False) - ) def test_keypair_list_with_marker_pre_v235(self): + self.set_compute_api_version('2.34') + arglist = [ '--marker', 'test_kp', @@ -743,8 +748,9 @@ class TestKeypairShow(TestKeypair): self.assertEqual({}, columns) self.assertEqual({}, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_keypair_show_with_user(self, sm_mock): + def test_keypair_show_with_user(self): + self.set_compute_api_version('2.10') + self.keypair = compute_fakes.create_one_keypair() self.compute_sdk_client.find_keypair.return_value = self.keypair @@ -782,8 +788,9 @@ class TestKeypairShow(TestKeypair): self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_keypair_show_with_user_pre_v210(self, sm_mock): + def test_keypair_show_with_user_pre_v210(self): + self.set_compute_api_version('2.9') + self.keypair = compute_fakes.create_one_keypair() arglist = [ '--user', diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index eac3b7ece7..441d69f5c5 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -21,9 +21,7 @@ from unittest import mock from unittest.mock import call import iso8601 -from novaclient import api_versions from openstack import exceptions as sdk_exceptions -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions from osc_lib import utils as common_utils @@ -99,24 +97,6 @@ class TestServer(compute_fakes.TestComputev2): # Set object methods to be tested. Could be overwritten in subclass. self.methods = {} - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - self._set_mock_microversion( - self.compute_client.api_version.get_string() - ) - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - def setup_servers_mock(self, count): # If we are creating more than one server, make one of them # boot-from-volume @@ -185,9 +165,8 @@ class TestServerAddFixedIP(TestServer): self.find_network = mock.Mock() self.app.client_manager.network.find_network = self.find_network - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_fixed_ip_pre_v249_with_tag(self, sm_mock): - sm_mock.side_effect = [False, True] + def test_server_add_fixed_ip_pre_v249_with_tag(self): + self.set_compute_api_version('2.48') servers = self.setup_sdk_servers_mock(count=1) network = compute_fakes.create_one_network() @@ -220,9 +199,8 @@ class TestServerAddFixedIP(TestServer): '--os-compute-api-version 2.49 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_fixed_ip(self, sm_mock): - sm_mock.side_effect = [True, False] + def test_server_add_fixed_ip(self): + self.set_compute_api_version('2.49') servers = self.setup_sdk_servers_mock(count=1) network = compute_fakes.create_one_network() @@ -268,9 +246,8 @@ class TestServerAddFixedIP(TestServer): servers[0].id, net_id=network['id'] ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_fixed_ip_with_fixed_ip(self, sm_mock): - sm_mock.side_effect = [True, True] + def test_server_add_fixed_ip_with_fixed_ip(self): + self.set_compute_api_version('2.49') servers = self.setup_sdk_servers_mock(count=1) network = compute_fakes.create_one_network() @@ -324,9 +301,8 @@ class TestServerAddFixedIP(TestServer): fixed_ips=[{'ip_address': '5.6.7.8'}], ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_fixed_ip_with_tag(self, sm_mock): - sm_mock.side_effect = [True, True, True] + def test_server_add_fixed_ip_with_tag(self): + self.set_compute_api_version('2.49') servers = self.setup_sdk_servers_mock(count=1) network = compute_fakes.create_one_network() @@ -386,9 +362,8 @@ class TestServerAddFixedIP(TestServer): tag='tag1', ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_fixed_ip_with_fixed_ip_with_tag(self, sm_mock): - sm_mock.side_effect = [True, True] + def test_server_add_fixed_ip_with_fixed_ip_with_tag(self): + self.set_compute_api_version('2.49') servers = self.setup_sdk_servers_mock(count=1) network = compute_fakes.create_one_network() @@ -763,8 +738,9 @@ class TestServerAddPort(TestServer): self._test_server_add_port('fake-port') self.find_port.assert_not_called() - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_add_port_with_tag(self, sm_mock): + def test_server_add_port_with_tag(self): + self.set_compute_api_version('2.49') + servers = self.setup_sdk_servers_mock(count=1) self.find_port.return_value.id = 'fake-port' arglist = [ @@ -787,8 +763,9 @@ class TestServerAddPort(TestServer): servers[0], port_id='fake-port', tag='tag1' ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_add_port_with_tag_pre_v249(self, sm_mock): + def test_server_add_port_with_tag_pre_v249(self): + self.set_compute_api_version('2.48') + servers = self.setup_servers_mock(count=1) self.find_port.return_value.id = 'fake-port' arglist = [ @@ -843,8 +820,8 @@ class TestServerAddVolume(TestServerVolume): # Get the command object to test self.cmd = server.AddServerVolume(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_add_volume(self, sm_mock): + def test_server_add_volume(self): + self.set_compute_api_version('2.48') arglist = [ '--device', '/dev/sdb', @@ -875,14 +852,8 @@ class TestServerAddVolume(TestServerVolume): self.servers[0], volumeId=self.volumes[0].id, device='/dev/sdb' ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_add_volume_with_tag(self, sm_mock): - def side_effect(compute_client, version): - if version == '2.49': - return True - return False - - sm_mock.side_effect = side_effect + def test_server_add_volume_with_tag(self): + self.set_compute_api_version('2.49') arglist = [ '--device', @@ -921,8 +892,9 @@ class TestServerAddVolume(TestServerVolume): tag='foo', ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_add_volume_with_tag_pre_v249(self, sm_mock): + def test_server_add_volume_with_tag_pre_v249(self): + self.set_compute_api_version('2.48') + arglist = [ self.servers[0].id, self.volumes[0].id, @@ -943,11 +915,9 @@ class TestServerAddVolume(TestServerVolume): '--os-compute-api-version 2.49 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_add_volume_with_enable_delete_on_termination( - self, - sm_mock, - ): + def test_server_add_volume_with_enable_delete_on_termination(self): + self.set_compute_api_version('2.79') + self.volume_attachment.delete_on_termination = True arglist = [ '--enable-delete-on-termination', @@ -992,11 +962,9 @@ class TestServerAddVolume(TestServerVolume): delete_on_termination=True, ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_add_volume_with_disable_delete_on_termination( - self, - sm_mock, - ): + def test_server_add_volume_with_disable_delete_on_termination(self): + self.set_compute_api_version('2.79') + self.volume_attachment.delete_on_termination = False arglist = [ @@ -1043,17 +1011,10 @@ class TestServerAddVolume(TestServerVolume): delete_on_termination=False, ) - @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_volume_with_enable_delete_on_termination_pre_v279( self, - sm_mock, ): - def side_effect(compute_client, version): - if version == '2.79': - return False - return True - - sm_mock.side_effect = side_effect + self.set_compute_api_version('2.78') arglist = [ self.servers[0].id, @@ -1074,17 +1035,10 @@ class TestServerAddVolume(TestServerVolume): '--os-compute-api-version 2.79 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion') def test_server_add_volume_with_disable_delete_on_termination_pre_v279( self, - sm_mock, ): - def side_effect(compute_client, version): - if version == '2.79': - return False - return True - - sm_mock.side_effect = side_effect + self.set_compute_api_version('2.78') arglist = [ self.servers[0].id, @@ -1105,11 +1059,11 @@ class TestServerAddVolume(TestServerVolume): '--os-compute-api-version 2.79 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) def test_server_add_volume_with_disable_and_enable_delete_on_termination( self, - sm_mock, ): + self.set_compute_api_version('2.78') + arglist = [ '--enable-delete-on-termination', '--disable-delete-on-termination', @@ -1214,8 +1168,9 @@ class TestServerAddNetwork(TestServer): self._test_server_add_network('fake-network') self.find_network.assert_not_called() - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_add_network_with_tag(self, sm_mock): + def test_server_add_network_with_tag(self): + self.set_compute_api_version('2.49') + servers = self.setup_sdk_servers_mock(count=1) self.find_network.return_value.id = 'fake-network' @@ -1239,8 +1194,9 @@ class TestServerAddNetwork(TestServer): servers[0], net_id='fake-network', tag='tag1' ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_add_network_with_tag_pre_v249(self, sm_mock): + def test_server_add_network_with_tag_pre_v249(self): + self.set_compute_api_version('2.48') + servers = self.setup_sdk_servers_mock(count=1) self.find_network.return_value.id = 'fake-network' @@ -1774,7 +1730,7 @@ class TestServerCreate(TestServer): self.assertEqual(self.datalist(), data) def test_server_create_with_network_tag(self): - self.compute_client.api_version = api_versions.APIVersion('2.43') + self.set_compute_api_version('2.43') arglist = [ '--image', @@ -1850,7 +1806,7 @@ class TestServerCreate(TestServer): self.app.client_manager.network.find_network.assert_called_once() def test_server_create_with_network_tag_pre_v243(self): - self.compute_client.api_version = api_versions.APIVersion('2.42') + self.set_compute_api_version('2.42') arglist = [ '--image', @@ -1886,7 +1842,7 @@ class TestServerCreate(TestServer): def _test_server_create_with_auto_network(self, arglist): # requires API microversion 2.37 or later - self.compute_client.api_version = api_versions.APIVersion('2.37') + self.set_compute_api_version('2.37') verifylist = [ ('image', 'image1'), @@ -1952,7 +1908,7 @@ class TestServerCreate(TestServer): def test_server_create_with_auto_network_pre_v237(self): # use an API microversion that's too old - self.compute_client.api_version = api_versions.APIVersion('2.36') + self.set_compute_api_version('2.36') arglist = [ '--image', @@ -1988,7 +1944,7 @@ class TestServerCreate(TestServer): def test_server_create_with_auto_network_default_v2_37(self): """Tests creating a server without specifying --nic using 2.37.""" # requires API microversion 2.37 or later - self.compute_client.api_version = api_versions.APIVersion('2.37') + self.set_compute_api_version('2.37') arglist = [ '--image', @@ -2034,7 +1990,7 @@ class TestServerCreate(TestServer): def _test_server_create_with_none_network(self, arglist): # requires API microversion 2.37 or later - self.compute_client.api_version = api_versions.APIVersion('2.37') + self.set_compute_api_version('2.37') verifylist = [ ('image', 'image1'), @@ -2100,7 +2056,7 @@ class TestServerCreate(TestServer): def test_server_create_with_none_network_pre_v237(self): # use an API microversion that's too old - self.compute_client.api_version = api_versions.APIVersion('2.36') + self.set_compute_api_version('2.36') arglist = [ '--image', @@ -2585,7 +2541,7 @@ class TestServerCreate(TestServer): self.assertEqual(self.datalist(), data) def test_server_create_with_block_device_full(self): - self.compute_client.api_version = api_versions.APIVersion('2.67') + self.set_compute_api_version('2.67') block_device = ( f'uuid={self.volume.id},source_type=volume,' @@ -2686,7 +2642,7 @@ class TestServerCreate(TestServer): self.assertEqual(self.datalist(), data) def test_server_create_with_block_device_from_file(self): - self.compute_client.api_version = api_versions.APIVersion('2.67') + self.set_compute_api_version('2.67') block_device = { 'uuid': self.volume.id, @@ -2840,7 +2796,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_block_device_tag_pre_v242(self): - self.compute_client.api_version = api_versions.APIVersion('2.41') + self.set_compute_api_version('2.41') block_device = f'uuid={self.volume.name},tag=foo' arglist = [ @@ -2861,7 +2817,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_block_device_volume_type_pre_v267(self): - self.compute_client.api_version = api_versions.APIVersion('2.66') + self.set_compute_api_version('2.66') block_device = f'uuid={self.volume.name},volume_type=foo' arglist = [ @@ -3824,9 +3780,9 @@ class TestServerCreate(TestServer): [], ) - def test_server_create_with_description_api_newer(self): + def test_server_create_with_description(self): # Description is supported for nova api version 2.19 or above - self.compute_client.api_version = 2.19 + self.set_compute_api_version('2.19') arglist = [ '--image', @@ -3846,11 +3802,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): - # In base command class ShowOne in cliff, abstract method - # take_action() returns a two-part tuple with a tuple of - # column names and a tuple of data to be shown. - columns, data = self.cmd.take_action(parsed_args) + columns, data = self.cmd.take_action(parsed_args) # Set expected values kwargs = dict( @@ -3865,7 +3817,7 @@ class TestServerCreate(TestServer): availability_zone=None, admin_pass=None, block_device_mapping_v2=[], - nics='auto', + nics=[], scheduler_hints={}, config_drive=None, description='description1', @@ -3880,9 +3832,9 @@ class TestServerCreate(TestServer): self.assertFalse(self.image_client.images.called) self.assertFalse(self.flavors_mock.called) - def test_server_create_with_description_api_older(self): + def test_server_create_with_description_pre_v219(self): # Description is not supported for nova api version below 2.19 - self.compute_client.api_version = 2.18 + self.set_compute_api_version('2.18') arglist = [ '--image', @@ -3902,13 +3854,12 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_tag(self): - self.compute_client.api_version = api_versions.APIVersion('2.52') + self.set_compute_api_version('2.52') arglist = [ '--image', @@ -3961,7 +3912,7 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_tag_pre_v252(self): - self.compute_client.api_version = api_versions.APIVersion('2.51') + self.set_compute_api_version('2.51') arglist = [ '--image', @@ -3992,7 +3943,7 @@ class TestServerCreate(TestServer): def test_server_create_with_host_v274(self): # Explicit host is supported for nova api version 2.74 or above - self.compute_client.api_version = 2.74 + self.set_compute_api_version('2.74') arglist = [ '--image', @@ -4012,11 +3963,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): - # In base command class ShowOne in cliff, abstract method - # take_action() returns a two-part tuple with a tuple of - # column names and a tuple of data to be shown. - columns, data = self.cmd.take_action(parsed_args) + columns, data = self.cmd.take_action(parsed_args) # Set expected values kwargs = dict( @@ -4048,7 +3995,7 @@ class TestServerCreate(TestServer): def test_server_create_with_host_pre_v274(self): # Host is not supported for nova api version below 2.74 - self.compute_client.api_version = 2.73 + self.set_compute_api_version('2.73') arglist = [ '--image', @@ -4068,15 +4015,14 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_hypervisor_hostname_v274(self): # Explicit hypervisor_hostname is supported for nova api version # 2.74 or above - self.compute_client.api_version = 2.74 + self.set_compute_api_version('2.74') arglist = [ '--image', @@ -4096,11 +4042,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): - # In base command class ShowOne in cliff, abstract method - # take_action() returns a two-part tuple with a tuple of - # column names and a tuple of data to be shown. - columns, data = self.cmd.take_action(parsed_args) + columns, data = self.cmd.take_action(parsed_args) # Set expected values kwargs = dict( @@ -4132,7 +4074,7 @@ class TestServerCreate(TestServer): def test_server_create_with_hypervisor_hostname_pre_v274(self): # Hypervisor_hostname is not supported for nova api version below 2.74 - self.compute_client.api_version = 2.73 + self.set_compute_api_version('2.73') arglist = [ '--image', @@ -4152,15 +4094,14 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args - ) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_server_create_with_host_and_hypervisor_hostname_v274(self): # Explicit host and hypervisor_hostname is supported for nova api # version 2.74 or above - self.compute_client.api_version = 2.74 + self.set_compute_api_version('2.74') arglist = [ '--image', @@ -4183,11 +4124,7 @@ class TestServerCreate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.74): - # In base command class ShowOne in cliff, abstract method - # take_action() returns a two-part tuple with a tuple of - # column names and a tuple of data to be shown. - columns, data = self.cmd.take_action(parsed_args) + columns, data = self.cmd.take_action(parsed_args) # Set expected values kwargs = dict( @@ -4219,7 +4156,7 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_hostname_v290(self): - self.compute_client.api_version = api_versions.APIVersion('2.90') + self.set_compute_api_version('2.90') arglist = [ '--image', @@ -4268,7 +4205,7 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_hostname_pre_v290(self): - self.compute_client.api_version = api_versions.APIVersion('2.89') + self.set_compute_api_version('2.89') arglist = [ '--image', @@ -4293,7 +4230,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_trusted_image_cert(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ '--image', @@ -4344,7 +4281,7 @@ class TestServerCreate(TestServer): self.assertFalse(self.flavors_mock.called) def test_server_create_with_trusted_image_cert_prev263(self): - self.compute_client.api_version = api_versions.APIVersion('2.62') + self.set_compute_api_version('2.62') arglist = [ '--image', @@ -4371,7 +4308,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_trusted_image_cert_from_volume(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ '--volume', 'volume1', @@ -4397,7 +4334,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_trusted_image_cert_from_snapshot(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ '--snapshot', 'snapshot1', @@ -4423,7 +4360,7 @@ class TestServerCreate(TestServer): ) def test_server_create_with_trusted_image_cert_boot_from_volume(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ '--image', 'image1', @@ -5019,7 +4956,7 @@ class TestServerList(_TestServerList): mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_list_with_tag(self): - self._set_mock_microversion('2.26') + self.set_compute_api_version('2.26') arglist = [ '--tag', @@ -5042,7 +4979,7 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_with_tag_pre_v225(self): - self._set_mock_microversion('2.25') + self.set_compute_api_version('2.25') arglist = [ '--tag', @@ -5063,7 +5000,7 @@ class TestServerList(_TestServerList): ) def test_server_list_with_not_tag(self): - self._set_mock_microversion('2.26') + self.set_compute_api_version('2.26') arglist = [ '--not-tag', 'tag1', @@ -5085,7 +5022,7 @@ class TestServerList(_TestServerList): self.assertEqual(self.data, tuple(data)) def test_server_list_with_not_tag_pre_v226(self): - self._set_mock_microversion('2.25') + self.set_compute_api_version('2.25') arglist = [ '--not-tag', @@ -5254,7 +5191,7 @@ class TestServerList(_TestServerList): self.assertEqual(tuple(self.data), tuple(data)) def test_server_list_long_with_host_status_v216(self): - self._set_mock_microversion('2.16') + self.set_compute_api_version('2.16') self.data1 = tuple( ( s.id, @@ -5423,7 +5360,7 @@ class TestServerListV273(_TestServerList): ) def test_server_list_with_locked(self): - self._set_mock_microversion('2.73') + self.set_compute_api_version('2.73') arglist = ['--locked'] verifylist = [('locked', True)] @@ -5437,7 +5374,7 @@ class TestServerListV273(_TestServerList): self.assertCountEqual(self.data, tuple(data)) def test_server_list_with_unlocked_v273(self): - self._set_mock_microversion('2.73') + self.set_compute_api_version('2.73') arglist = ['--unlocked'] verifylist = [('unlocked', True)] @@ -5452,7 +5389,7 @@ class TestServerListV273(_TestServerList): self.assertCountEqual(self.data, tuple(data)) def test_server_list_with_locked_and_unlocked(self): - self._set_mock_microversion('2.73') + self.set_compute_api_version('2.73') arglist = ['--locked', '--unlocked'] verifylist = [('locked', True), ('unlocked', True)] @@ -5466,7 +5403,7 @@ class TestServerListV273(_TestServerList): self.assertIn('Argument parse failed', str(ex)) def test_server_list_with_changes_before(self): - self._set_mock_microversion('2.66') + self.set_compute_api_version('2.66') arglist = ['--changes-before', '2016-03-05T06:27:59Z', '--deleted'] verifylist = [ ('changes_before', '2016-03-05T06:27:59Z'), @@ -5486,7 +5423,7 @@ class TestServerListV273(_TestServerList): @mock.patch.object(iso8601, 'parse_date', side_effect=iso8601.ParseError) def test_server_list_with_invalid_changes_before(self, mock_parse_isotime): - self._set_mock_microversion('2.66') + self.set_compute_api_version('2.66') arglist = [ '--changes-before', 'Invalid time value', @@ -5506,7 +5443,7 @@ class TestServerListV273(_TestServerList): mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_with_changes_before_pre_v266(self): - self._set_mock_microversion('2.65') + self.set_compute_api_version('2.65') arglist = ['--changes-before', '2016-03-05T06:27:59Z', '--deleted'] verifylist = [ @@ -5521,7 +5458,7 @@ class TestServerListV273(_TestServerList): ) def test_server_list_v269_with_partial_constructs(self): - self._set_mock_microversion('2.69') + self.set_compute_api_version('2.69') arglist = [] verifylist = [] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -5575,19 +5512,15 @@ class TestServerLock(TestServer): # Get the command object to test self.cmd = server.LockServer(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_lock(self, sm_mock): - sm_mock.return_value = False + def test_server_lock(self): self.run_method_with_sdk_servers('lock_server', 1) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_lock_multi_servers(self, sm_mock): - sm_mock.return_value = False + def test_server_lock_multi_servers(self): self.run_method_with_sdk_servers('lock_server', 3) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_lock_with_reason(self, sm_mock): - sm_mock.return_value = True + def test_server_lock_with_reason(self): + self.set_compute_api_version('2.73') + arglist = [ self.server.id, '--reason', @@ -5608,9 +5541,9 @@ class TestServerLock(TestServer): locked_reason="blah", ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_lock_with_reason_multi_servers(self, sm_mock): - sm_mock.return_value = True + def test_server_lock_with_reason_multi_servers(self): + self.set_compute_api_version('2.73') + server2 = compute_fakes.create_one_sdk_server() arglist = [ self.server.id, @@ -5631,9 +5564,9 @@ class TestServerLock(TestServer): ) self.assertEqual(2, self.compute_sdk_client.lock_server.call_count) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_lock_with_reason_pre_v273(self, sm_mock): - sm_mock.return_value = False + def test_server_lock_with_reason_pre_v273(self): + self.set_compute_api_version('2.72') + server = compute_fakes.create_one_sdk_server() arglist = [ server.id, @@ -5711,7 +5644,7 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.compute_client.api_version = api_versions.APIVersion('2.56') + self.set_compute_api_version('2.56') result = self.cmd.take_action(parsed_args) @@ -5835,7 +5768,7 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.compute_client.api_version = api_versions.APIVersion('2.30') + self.set_compute_api_version('2.30') result = self.cmd.take_action(parsed_args) @@ -5895,7 +5828,7 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.compute_client.api_version = api_versions.APIVersion('2.24') + self.set_compute_api_version('2.24') result = self.cmd.take_action(parsed_args) @@ -5920,7 +5853,7 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.compute_client.api_version = api_versions.APIVersion('2.24') + self.set_compute_api_version('2.24') result = self.cmd.take_action(parsed_args) @@ -5945,7 +5878,7 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.compute_client.api_version = api_versions.APIVersion('2.25') + self.set_compute_api_version('2.25') with mock.patch.object(self.cmd.log, 'warning') as mock_warning: result = self.cmd.take_action(parsed_args) @@ -6301,7 +6234,7 @@ class TestServerRebuild(TestServer): self.server.rebuild.assert_called_with(self.image, password) def test_rebuild_with_description(self): - self.compute_client.api_version = api_versions.APIVersion('2.19') + self.set_compute_api_version('2.19') description = 'description1' arglist = [self.server.id, '--description', description] @@ -6317,7 +6250,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_description_pre_v219(self): - self.compute_client.api_version = api_versions.APIVersion('2.18') + self.set_compute_api_version('2.18') description = 'description1' arglist = [self.server.id, '--description', description] @@ -6487,7 +6420,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_keypair_name(self): - self.compute_client.api_version = api_versions.APIVersion('2.54') + self.set_compute_api_version('2.54') self.server.key_name = 'mykey' arglist = [ @@ -6510,7 +6443,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_keypair_name_pre_v254(self): - self.compute_client.api_version = api_versions.APIVersion('2.53') + self.set_compute_api_version('2.53') self.server.key_name = 'mykey' arglist = [ @@ -6529,7 +6462,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_no_keypair_name(self): - self.compute_client.api_version = api_versions.APIVersion('2.54') + self.set_compute_api_version('2.54') self.server.key_name = 'mykey' arglist = [ @@ -6568,7 +6501,7 @@ class TestServerRebuild(TestServer): @mock.patch('openstackclient.compute.v2.server.open') def test_rebuild_with_user_data(self, mock_open): - self.compute_client.api_version = api_versions.APIVersion('2.57') + self.set_compute_api_version('2.57') mock_file = mock.Mock(name='File') mock_open.return_value = mock_file @@ -6602,7 +6535,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_user_data_pre_v257(self): - self.compute_client.api_version = api_versions.APIVersion('2.56') + self.set_compute_api_version('2.56') arglist = [ self.server.id, @@ -6620,7 +6553,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_no_user_data(self): - self.compute_client.api_version = api_versions.APIVersion('2.54') + self.set_compute_api_version('2.54') self.server.key_name = 'mykey' arglist = [ @@ -6639,7 +6572,7 @@ class TestServerRebuild(TestServer): self.server.rebuild.assert_called_with(self.image, None, userdata=None) def test_rebuild_with_no_user_data_pre_v254(self): - self.compute_client.api_version = api_versions.APIVersion('2.53') + self.set_compute_api_version('2.53') arglist = [ self.server.id, @@ -6671,7 +6604,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_trusted_image_cert(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ self.server.id, @@ -6695,7 +6628,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_trusted_image_cert_pre_v263(self): - self.compute_client.api_version = api_versions.APIVersion('2.62') + self.set_compute_api_version('2.62') arglist = [ self.server.id, @@ -6715,7 +6648,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_no_trusted_image_cert(self): - self.compute_client.api_version = api_versions.APIVersion('2.63') + self.set_compute_api_version('2.63') arglist = [ self.server.id, @@ -6735,7 +6668,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_no_trusted_image_cert_pre_v263(self): - self.compute_client.api_version = api_versions.APIVersion('2.62') + self.set_compute_api_version('2.62') arglist = [ self.server.id, @@ -6752,7 +6685,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_hostname(self): - self.compute_client.api_version = api_versions.APIVersion('2.90') + self.set_compute_api_version('2.90') arglist = [self.server.id, '--hostname', 'new-hostname'] verifylist = [('server', self.server.id), ('hostname', 'new-hostname')] @@ -6767,7 +6700,7 @@ class TestServerRebuild(TestServer): ) def test_rebuild_with_hostname_pre_v290(self): - self.compute_client.api_version = api_versions.APIVersion('2.89') + self.set_compute_api_version('2.89') arglist = [ self.server.id, @@ -6812,7 +6745,7 @@ class TestServerRebuildVolumeBacked(TestServer): self.cmd = server.RebuildServer(self.app, None) def test_rebuild_with_reimage_boot_volume(self): - self.compute_client.api_version = api_versions.APIVersion('2.93') + self.set_compute_api_version('2.93') arglist = [ self.server.id, @@ -6833,7 +6766,7 @@ class TestServerRebuildVolumeBacked(TestServer): self.server.rebuild.assert_called_with(self.new_image, None) def test_rebuild_with_no_reimage_boot_volume(self): - self.compute_client.api_version = api_versions.APIVersion('2.93') + self.set_compute_api_version('2.93') arglist = [ self.server.id, @@ -6854,7 +6787,7 @@ class TestServerRebuildVolumeBacked(TestServer): self.assertIn('--reimage-boot-volume is required', str(exc)) def test_rebuild_with_reimage_boot_volume_pre_v293(self): - self.compute_client.api_version = api_versions.APIVersion('2.92') + self.set_compute_api_version('2.92') arglist = [ self.server.id, @@ -6947,7 +6880,7 @@ class TestEvacuateServer(TestServer): self._test_evacuate(args, verify_args, evac_args) def test_evacuate_with_host(self): - self.compute_client.api_version = api_versions.APIVersion('2.29') + self.set_compute_api_version('2.29') host = 'target-host' args = [ @@ -6964,7 +6897,7 @@ class TestEvacuateServer(TestServer): self._test_evacuate(args, verify_args, evac_args) def test_evacuate_with_host_pre_v229(self): - self.compute_client.api_version = api_versions.APIVersion('2.28') + self.set_compute_api_version('2.28') args = [ self.server.id, @@ -6982,7 +6915,7 @@ class TestEvacuateServer(TestServer): ) def test_evacuate_without_share_storage(self): - self.compute_client.api_version = api_versions.APIVersion('2.13') + self.set_compute_api_version('2.13') args = [self.server.id, '--shared-storage'] verify_args = [ @@ -6997,7 +6930,7 @@ class TestEvacuateServer(TestServer): self._test_evacuate(args, verify_args, evac_args) def test_evacuate_without_share_storage_post_v213(self): - self.compute_client.api_version = api_versions.APIVersion('2.14') + self.set_compute_api_version('2.14') args = [self.server.id, '--shared-storage'] verify_args = [ @@ -7957,8 +7890,7 @@ class TestServerSet(TestServer): self.assertIsNone(result) def test_server_set_with_description(self): - # Description is supported for nova api version 2.19 or above - self.fake_servers[0].api_version = api_versions.APIVersion('2.19') + self.set_compute_api_version('2.19') arglist = [ '--description', @@ -7977,8 +7909,7 @@ class TestServerSet(TestServer): self.assertIsNone(result) def test_server_set_with_description_pre_v219(self): - # Description is not supported for nova api version below 2.19 - self.fake_servers[0].api_version = api_versions.APIVersion('2.18') + self.set_compute_api_version('2.18') arglist = [ '--description', @@ -7995,7 +7926,7 @@ class TestServerSet(TestServer): ) def test_server_set_with_tag(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.26') + self.set_compute_api_version('2.26') arglist = [ '--tag', @@ -8021,7 +7952,7 @@ class TestServerSet(TestServer): self.assertIsNone(result) def test_server_set_with_tag_pre_v226(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.25') + self.set_compute_api_version('2.25') arglist = [ '--tag', @@ -8044,7 +7975,7 @@ class TestServerSet(TestServer): ) def test_server_set_with_hostname(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.90') + self.set_compute_api_version('2.90') arglist = [ '--hostname', @@ -8063,7 +7994,7 @@ class TestServerSet(TestServer): self.assertIsNone(result) def test_server_set_with_hostname_pre_v290(self): - self.fake_servers[0].api_version = api_versions.APIVersion('2.89') + self.set_compute_api_version('2.89') arglist = [ '--hostname', @@ -8406,7 +8337,7 @@ class TestServerShow(TestServer): self.assertEqual(('test',), data) def test_show_topology(self): - self._set_mock_microversion('2.78') + self.set_compute_api_version('2.78') arglist = [ '--topology', @@ -8428,7 +8359,7 @@ class TestServerShow(TestServer): self.assertCountEqual(self.data, data) def test_show_topology_pre_v278(self): - self._set_mock_microversion('2.77') + self.set_compute_api_version('2.77') arglist = [ '--topology', @@ -8719,9 +8650,9 @@ class TestServerUnset(TestServer): ) self.assertIsNone(result) - def test_server_unset_with_description_api_newer(self): + def test_server_unset_with_description(self): # Description is supported for nova api version 2.19 or above - self.compute_client.api_version = 2.19 + self.set_compute_api_version('2.19') arglist = [ '--description', @@ -8733,16 +8664,16 @@ class TestServerUnset(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object(api_versions, 'APIVersion', return_value=2.19): - result = self.cmd.take_action(parsed_args) + result = self.cmd.take_action(parsed_args) + self.servers_mock.update.assert_called_once_with( self.fake_server, description="" ) self.assertIsNone(result) - def test_server_unset_with_description_api_older(self): + def test_server_unset_with_description_pre_v219(self): # Description is not supported for nova api version below 2.19 - self.compute_client.api_version = api_versions.APIVersion('2.18') + self.set_compute_api_version('2.18') arglist = [ '--description', @@ -8762,7 +8693,7 @@ class TestServerUnset(TestServer): ) def test_server_unset_with_tag(self): - self.compute_client.api_version = api_versions.APIVersion('2.26') + self.set_compute_api_version('2.26') arglist = [ '--tag', @@ -8788,7 +8719,7 @@ class TestServerUnset(TestServer): ) def test_server_unset_with_tag_pre_v226(self): - self.compute_client.api_version = api_versions.APIVersion('2.25') + self.set_compute_api_version('2.25') arglist = [ '--tag', @@ -8845,7 +8776,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_az(self): - self._set_mock_microversion('2.77') + self.set_compute_api_version('2.77') arglist = [ '--availability-zone', @@ -8870,7 +8801,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_az_pre_v277(self): - self._set_mock_microversion('2.76') + self.set_compute_api_version('2.76') arglist = [ self.server.id, @@ -8894,7 +8825,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_host(self): - self._set_mock_microversion('2.91') + self.set_compute_api_version('2.91') arglist = [ '--host', @@ -8916,7 +8847,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_host_pre_v291(self): - self._set_mock_microversion('2.90') + self.set_compute_api_version('2.90') arglist = [ '--host', @@ -8938,7 +8869,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_no_az(self): - self._set_mock_microversion('2.91') + self.set_compute_api_version('2.91') arglist = [ '--no-availability-zone', @@ -8962,7 +8893,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_no_az_pre_v291(self): - self._set_mock_microversion('2.90') + self.set_compute_api_version('2.90') arglist = [ '--no-availability-zone', @@ -8986,7 +8917,7 @@ class TestServerUnshelve(TestServer): ) def test_unshelve_with_no_az_and_az_conflict(self): - self._set_mock_microversion('2.91') + self.set_compute_api_version('2.91') arglist = [ '--availability-zone', diff --git a/openstackclient/tests/unit/compute/v2/test_server_event.py b/openstackclient/tests/unit/compute/v2/test_server_event.py index 1ce2e4d0e8..728d9f8424 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_event.py +++ b/openstackclient/tests/unit/compute/v2/test_server_event.py @@ -15,40 +15,14 @@ from unittest import mock import iso8601 -from novaclient import api_versions -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.compute.v2 import server_event from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes -class TestServerEvent(compute_fakes.TestComputev2): +class TestListServerEvent(compute_fakes.TestComputev2): fake_server = compute_fakes.create_one_sdk_server() - - def setUp(self): - super().setUp() - - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - self._set_mock_microversion( - self.compute_client.api_version.get_string() - ) - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - - -class TestListServerEvent(TestServerEvent): fake_event = compute_fakes.create_one_server_action() columns = ( @@ -145,7 +119,7 @@ class TestListServerEvent(TestServerEvent): self.assertEqual(self.long_data, tuple(data)) def test_server_event_list_with_changes_since(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ '--changes-since', @@ -177,7 +151,7 @@ class TestListServerEvent(TestServerEvent): self, mock_parse_isotime, ): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ '--changes-since', @@ -200,7 +174,7 @@ class TestListServerEvent(TestServerEvent): mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_event_list_with_changes_since_pre_v258(self): - self._set_mock_microversion('2.57') + self.set_compute_api_version('2.57') arglist = [ '--changes-since', @@ -225,7 +199,7 @@ class TestListServerEvent(TestServerEvent): ) def test_server_event_list_with_changes_before(self): - self._set_mock_microversion('2.66') + self.set_compute_api_version('2.66') arglist = [ '--changes-before', @@ -257,7 +231,7 @@ class TestListServerEvent(TestServerEvent): self, mock_parse_isotime, ): - self._set_mock_microversion('2.66') + self.set_compute_api_version('2.66') arglist = [ '--changes-before', @@ -278,7 +252,7 @@ class TestListServerEvent(TestServerEvent): mock_parse_isotime.assert_called_once_with('Invalid time value') def test_server_event_list_with_changes_before_pre_v266(self): - self._set_mock_microversion('2.65') + self.set_compute_api_version('2.65') arglist = [ '--changes-before', @@ -301,7 +275,7 @@ class TestListServerEvent(TestServerEvent): ) def test_server_event_list_with_limit(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ '--limit', @@ -323,7 +297,7 @@ class TestListServerEvent(TestServerEvent): ) def test_server_event_list_with_limit_pre_v258(self): - self._set_mock_microversion('2.57') + self.set_compute_api_version('2.57') arglist = [ '--limit', @@ -348,7 +322,7 @@ class TestListServerEvent(TestServerEvent): ) def test_server_event_list_with_marker(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ '--marker', @@ -369,7 +343,7 @@ class TestListServerEvent(TestServerEvent): ) def test_server_event_list_with_marker_pre_v258(self): - self._set_mock_microversion('2.57') + self.set_compute_api_version('2.57') arglist = [ '--marker', @@ -391,7 +365,8 @@ class TestListServerEvent(TestServerEvent): ) -class TestShowServerEvent(TestServerEvent): +class TestShowServerEvent(compute_fakes.TestComputev2): + fake_server = compute_fakes.create_one_sdk_server() fake_event = compute_fakes.create_one_server_action() columns = ( 'action', diff --git a/openstackclient/tests/unit/compute/v2/test_server_group.py b/openstackclient/tests/unit/compute/v2/test_server_group.py index ab27288ea6..2bef027960 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_group.py +++ b/openstackclient/tests/unit/compute/v2/test_server_group.py @@ -13,9 +13,6 @@ # under the License. # -from unittest import mock - -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions @@ -57,8 +54,9 @@ class TestServerGroupCreate(TestServerGroup): ) self.cmd = server_group.CreateServerGroup(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_create(self, sm_mock): + def test_server_group_create(self): + self.set_compute_api_version('2.64') + arglist = [ '--policy', 'anti-affinity', @@ -78,8 +76,9 @@ class TestServerGroupCreate(TestServerGroup): self.assertCountEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_create_with_soft_policies(self, sm_mock): + def test_server_group_create_with_soft_policies(self): + self.set_compute_api_version('2.64') + arglist = [ '--policy', 'soft-anti-affinity', @@ -99,8 +98,9 @@ class TestServerGroupCreate(TestServerGroup): self.assertCountEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_group_create_with_soft_policies_pre_v215(self, sm_mock): + def test_server_group_create_with_soft_policies_pre_v215(self): + self.set_compute_api_version('2.14') + arglist = [ '--policy', 'soft-anti-affinity', @@ -118,8 +118,9 @@ class TestServerGroupCreate(TestServerGroup): '--os-compute-api-version 2.15 or greater is required', str(ex) ) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_create_with_rules(self, sm_mock): + def test_server_group_create_with_rules(self): + self.set_compute_api_version('2.64') + arglist = [ '--policy', 'soft-anti-affinity', @@ -143,10 +144,9 @@ class TestServerGroupCreate(TestServerGroup): self.assertCountEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object( - sdk_utils, 'supports_microversion', side_effect=[True, False] - ) - def test_server_group_create_with_rules_pre_v264(self, sm_mock): + def test_server_group_create_with_rules_pre_v264(self): + self.set_compute_api_version('2.63') + arglist = [ '--policy', 'soft-anti-affinity', @@ -346,8 +346,7 @@ class TestServerGroupList(TestServerGroup): ] self.cmd = server_group.ListServerGroup(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_group_list(self, sm_mock): + def test_server_group_list(self): arglist = [] verifylist = [ ('all_projects', False), @@ -363,8 +362,7 @@ class TestServerGroupList(TestServerGroup): self.assertCountEqual(self.list_columns, columns) self.assertCountEqual(self.list_data, tuple(data)) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=False) - def test_server_group_list_with_all_projects_and_long(self, sm_mock): + def test_server_group_list_with_all_projects_and_long(self): arglist = [ '--all-projects', '--long', @@ -384,8 +382,7 @@ class TestServerGroupList(TestServerGroup): self.assertCountEqual(self.list_columns_long, columns) self.assertCountEqual(self.list_data_long, tuple(data)) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_list_with_limit(self, sm_mock): + def test_server_group_list_with_limit(self): arglist = [ '--limit', '1', @@ -402,8 +399,7 @@ class TestServerGroupList(TestServerGroup): self.compute_sdk_client.server_groups.assert_called_once_with(limit=1) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_list_with_offset(self, sm_mock): + def test_server_group_list_with_offset(self): arglist = [ '--offset', '5', @@ -420,8 +416,9 @@ class TestServerGroupList(TestServerGroup): self.compute_sdk_client.server_groups.assert_called_once_with(offset=5) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_list_v264(self, sm_mock): + def test_server_group_list_v264(self): + self.set_compute_api_version('2.64') + arglist = [] verifylist = [ ('all_projects', False), @@ -434,8 +431,9 @@ class TestServerGroupList(TestServerGroup): self.assertCountEqual(self.list_columns_v264, columns) self.assertCountEqual(self.list_data_v264, tuple(data)) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_list_with_all_projects_and_long_v264(self, sm_mock): + def test_server_group_list_with_all_projects_and_long_v264(self): + self.set_compute_api_version('2.64') + arglist = [ '--all-projects', '--long', @@ -463,8 +461,9 @@ class TestServerGroupShow(TestServerGroup): ) self.cmd = server_group.ShowServerGroup(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion', return_value=True) - def test_server_group_show(self, sm_mock): + def test_server_group_show(self): + self.set_compute_api_version('2.64') + arglist = [ 'affinity_group', ] diff --git a/openstackclient/tests/unit/compute/v2/test_server_migration.py b/openstackclient/tests/unit/compute/v2/test_server_migration.py index 6638ca168a..09ceae6fe9 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_migration.py +++ b/openstackclient/tests/unit/compute/v2/test_server_migration.py @@ -10,10 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from unittest import mock - -from novaclient import api_versions -from openstack import utils as sdk_utils from osc_lib import exceptions from osc_lib import utils as common_utils @@ -22,34 +18,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes -class TestServerMigration(compute_fakes.TestComputev2): - def setUp(self): - super().setUp() - - # Get a shortcut to the compute client ServerManager Mock - self.servers_mock = self.compute_client.servers - self.servers_mock.reset_mock() - - # Get a shortcut to the compute client ServerMigrationsManager Mock - self.server_migrations_mock = self.compute_client.server_migrations - self.server_migrations_mock.reset_mock() - - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - - -class TestListMigration(TestServerMigration): +class TestListMigration(compute_fakes.TestComputev2): """Test fetch all migrations.""" MIGRATION_COLUMNS = [ @@ -83,8 +52,6 @@ class TestListMigration(TestServerMigration): def setUp(self): super().setUp() - self._set_mock_microversion('2.1') - self.server = compute_fakes.create_one_sdk_server() self.compute_sdk_client.find_server.return_value = self.server @@ -189,7 +156,7 @@ class TestListMigrationV223(TestListMigration): def setUp(self): super().setUp() - self._set_mock_microversion('2.23') + self.set_compute_api_version('2.23') def test_server_migration_list(self): arglist = ['--status', 'migrating'] @@ -249,7 +216,7 @@ class TestListMigrationV259(TestListMigration): def setUp(self): super().setUp() - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') def test_server_migration_list(self): arglist = [ @@ -286,7 +253,8 @@ class TestListMigrationV259(TestListMigration): self.assertEqual(tuple(self.data), tuple(data)) def test_server_migration_list_with_limit_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') + arglist = ['--status', 'migrating', '--limit', '1'] verifylist = [('status', 'migrating'), ('limit', 1)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -298,7 +266,8 @@ class TestListMigrationV259(TestListMigration): ) def test_server_migration_list_with_marker_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') + arglist = ['--status', 'migrating', '--marker', 'test_kp'] verifylist = [('status', 'migrating'), ('marker', 'test_kp')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -310,7 +279,8 @@ class TestListMigrationV259(TestListMigration): ) def test_server_migration_list_with_changes_since_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') + arglist = [ '--status', 'migrating', @@ -371,7 +341,7 @@ class TestListMigrationV266(TestListMigration): def setUp(self): super().setUp() - self._set_mock_microversion('2.66') + self.set_compute_api_version('2.66') def test_server_migration_list_with_changes_before(self): arglist = [ @@ -412,7 +382,8 @@ class TestListMigrationV266(TestListMigration): self.assertEqual(tuple(self.data), tuple(data)) def test_server_migration_list_with_changes_before_pre_v266(self): - self._set_mock_microversion('2.65') + self.set_compute_api_version('2.65') + arglist = [ '--status', 'migrating', @@ -485,7 +456,7 @@ class TestListMigrationV280(TestListMigration): self.projects_mock.get.return_value = self.project self.users_mock.get.return_value = self.user - self._set_mock_microversion('2.80') + self.set_compute_api_version('2.80') def test_server_migration_list_with_project(self): arglist = [ @@ -540,7 +511,8 @@ class TestListMigrationV280(TestListMigration): self.MIGRATION_FIELDS.remove('project_id') def test_get_migrations_with_project_pre_v280(self): - self._set_mock_microversion('2.79') + self.set_compute_api_version('2.79') + arglist = [ '--status', 'migrating', @@ -612,7 +584,8 @@ class TestListMigrationV280(TestListMigration): self.MIGRATION_FIELDS.remove('user_id') def test_get_migrations_with_user_pre_v280(self): - self._set_mock_microversion('2.79') + self.set_compute_api_version('2.79') + arglist = [ '--status', 'migrating', @@ -690,7 +663,8 @@ class TestListMigrationV280(TestListMigration): self.MIGRATION_FIELDS.remove('user_id') def test_get_migrations_with_project_and_user_pre_v280(self): - self._set_mock_microversion('2.79') + self.set_compute_api_version('2.79') + arglist = [ '--status', 'migrating', @@ -716,7 +690,7 @@ class TestListMigrationV280(TestListMigration): ) -class TestServerMigrationShow(TestServerMigration): +class TestServerMigrationShow(compute_fakes.TestComputev2): def setUp(self): super().setUp() @@ -793,12 +767,12 @@ class TestServerMigrationShow(TestServerMigration): ) def test_server_migration_show(self): - self._set_mock_microversion('2.24') + self.set_compute_api_version('2.24') self._test_server_migration_show() def test_server_migration_show_v259(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.columns += ('UUID',) self.data += (self.server_migration.uuid,) @@ -806,7 +780,7 @@ class TestServerMigrationShow(TestServerMigration): self._test_server_migration_show() def test_server_migration_show_v280(self): - self._set_mock_microversion('2.80') + self.set_compute_api_version('2.80') self.columns += ('UUID', 'User ID', 'Project ID') self.data += ( @@ -818,7 +792,7 @@ class TestServerMigrationShow(TestServerMigration): self._test_server_migration_show() def test_server_migration_show_pre_v224(self): - self._set_mock_microversion('2.23') + self.set_compute_api_version('2.23') arglist = [ self.server.id, @@ -835,7 +809,7 @@ class TestServerMigrationShow(TestServerMigration): ) def test_server_migration_show_by_uuid(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.compute_sdk_client.server_migrations.return_value = iter( [self.server_migration] @@ -865,7 +839,8 @@ class TestServerMigrationShow(TestServerMigration): self.compute_sdk_client.get_server_migration.assert_not_called() def test_server_migration_show_by_uuid_no_matches(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') + self.compute_sdk_client.server_migrations.return_value = iter([]) arglist = [ @@ -884,7 +859,7 @@ class TestServerMigrationShow(TestServerMigration): ) def test_server_migration_show_by_uuid_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ self.server.id, @@ -901,7 +876,7 @@ class TestServerMigrationShow(TestServerMigration): ) def test_server_migration_show_invalid_id(self): - self._set_mock_microversion('2.24') + self.set_compute_api_version('2.24') arglist = [ self.server.id, @@ -918,7 +893,7 @@ class TestServerMigrationShow(TestServerMigration): ) -class TestServerMigrationAbort(TestServerMigration): +class TestServerMigrationAbort(compute_fakes.TestComputev2): def setUp(self): super().setUp() @@ -931,7 +906,7 @@ class TestServerMigrationAbort(TestServerMigration): self.cmd = server_migration.AbortMigration(self.app, None) def test_migration_abort(self): - self._set_mock_microversion('2.24') + self.set_compute_api_version('2.24') arglist = [ self.server.id, @@ -951,7 +926,7 @@ class TestServerMigrationAbort(TestServerMigration): self.assertIsNone(result) def test_migration_abort_pre_v224(self): - self._set_mock_microversion('2.23') + self.set_compute_api_version('2.23') arglist = [ self.server.id, @@ -968,7 +943,7 @@ class TestServerMigrationAbort(TestServerMigration): ) def test_server_migration_abort_by_uuid(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.server_migration = compute_fakes.create_one_server_migration() self.compute_sdk_client.server_migrations.return_value = iter( @@ -996,7 +971,7 @@ class TestServerMigrationAbort(TestServerMigration): self.assertIsNone(result) def test_server_migration_abort_by_uuid_no_matches(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.compute_sdk_client.server_migrations.return_value = iter([]) @@ -1016,7 +991,7 @@ class TestServerMigrationAbort(TestServerMigration): ) def test_server_migration_abort_by_uuid_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ self.server.id, @@ -1033,7 +1008,7 @@ class TestServerMigrationAbort(TestServerMigration): ) -class TestServerMigrationForceComplete(TestServerMigration): +class TestServerMigrationForceComplete(compute_fakes.TestComputev2): def setUp(self): super().setUp() @@ -1046,7 +1021,7 @@ class TestServerMigrationForceComplete(TestServerMigration): self.cmd = server_migration.ForceCompleteMigration(self.app, None) def test_migration_force_complete(self): - self._set_mock_microversion('2.22') + self.set_compute_api_version('2.22') arglist = [ self.server.id, @@ -1066,7 +1041,7 @@ class TestServerMigrationForceComplete(TestServerMigration): self.assertIsNone(result) def test_migration_force_complete_pre_v222(self): - self._set_mock_microversion('2.21') + self.set_compute_api_version('2.21') arglist = [ self.server.id, @@ -1083,7 +1058,7 @@ class TestServerMigrationForceComplete(TestServerMigration): ) def test_server_migration_force_complete_by_uuid(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.server_migration = compute_fakes.create_one_server_migration() self.compute_sdk_client.server_migrations.return_value = iter( @@ -1111,7 +1086,7 @@ class TestServerMigrationForceComplete(TestServerMigration): self.assertIsNone(result) def test_server_migration_force_complete_by_uuid_no_matches(self): - self._set_mock_microversion('2.59') + self.set_compute_api_version('2.59') self.compute_sdk_client.server_migrations.return_value = iter([]) @@ -1131,7 +1106,7 @@ class TestServerMigrationForceComplete(TestServerMigration): ) def test_server_migration_force_complete_by_uuid_pre_v259(self): - self._set_mock_microversion('2.58') + self.set_compute_api_version('2.58') arglist = [ self.server.id, diff --git a/openstackclient/tests/unit/compute/v2/test_server_volume.py b/openstackclient/tests/unit/compute/v2/test_server_volume.py index 439ff048d3..e59853228b 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_volume.py +++ b/openstackclient/tests/unit/compute/v2/test_server_volume.py @@ -10,9 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from unittest import mock - -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.compute.v2 import server_volume @@ -35,10 +32,7 @@ class TestServerVolumeList(compute_fakes.TestComputev2): # Get the command object to test self.cmd = server_volume.ListServerVolume(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_list(self, sm_mock): - sm_mock.side_effect = [False, False, False, False] - + def test_server_volume_list(self): arglist = [ self.server.id, ] @@ -71,9 +65,8 @@ class TestServerVolumeList(compute_fakes.TestComputev2): self.server, ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_list_with_tags(self, sm_mock): - sm_mock.side_effect = [False, True, False, False] + def test_server_volume_list_with_tags(self): + self.set_compute_api_version('2.70') arglist = [ self.server.id, @@ -118,9 +111,9 @@ class TestServerVolumeList(compute_fakes.TestComputev2): self.server, ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_list_with_delete_on_attachment(self, sm_mock): - sm_mock.side_effect = [False, True, True, False] + def test_server_volume_list_with_delete_on_attachment(self): + self.set_compute_api_version('2.79') + arglist = [ self.server.id, ] @@ -167,9 +160,9 @@ class TestServerVolumeList(compute_fakes.TestComputev2): self.server, ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_list_with_attachment_ids(self, sm_mock): - sm_mock.side_effect = [True, True, True, True] + def test_server_volume_list_with_attachment_ids(self): + self.set_compute_api_version('2.89') + arglist = [ self.server.id, ] @@ -251,9 +244,8 @@ class TestServerVolumeUpdate(compute_fakes.TestComputev2): self.compute_sdk_client.update_volume_attachment.assert_not_called() self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_update_with_delete_on_termination(self, sm_mock): - sm_mock.return_value = True + def test_server_volume_update_with_delete_on_termination(self): + self.set_compute_api_version('2.85') arglist = [ self.server.id, @@ -276,9 +268,8 @@ class TestServerVolumeUpdate(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_update_with_preserve_on_termination(self, sm_mock): - sm_mock.return_value = True + def test_server_volume_update_with_preserve_on_termination(self): + self.set_compute_api_version('2.85') arglist = [ self.server.id, @@ -299,12 +290,8 @@ class TestServerVolumeUpdate(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_update_with_delete_on_termination_pre_v285( - self, - sm_mock, - ): - sm_mock.return_value = False + def test_server_volume_update_with_delete_on_termination_pre_v285(self): + self.set_compute_api_version('2.84') arglist = [ self.server.id, @@ -325,12 +312,8 @@ class TestServerVolumeUpdate(compute_fakes.TestComputev2): ) self.compute_sdk_client.update_volume_attachment.assert_not_called() - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_server_volume_update_with_preserve_on_termination_pre_v285( - self, - sm_mock, - ): - sm_mock.return_value = False + def test_server_volume_update_with_preserve_on_termination_pre_v285(self): + self.set_compute_api_version('2.84') arglist = [ self.server.id, diff --git a/openstackclient/tests/unit/compute/v2/test_service.py b/openstackclient/tests/unit/compute/v2/test_service.py index efb8c28b9f..2997fec79c 100644 --- a/openstackclient/tests/unit/compute/v2/test_service.py +++ b/openstackclient/tests/unit/compute/v2/test_service.py @@ -13,9 +13,7 @@ # under the License. from unittest import mock -from unittest.mock import call -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.compute.v2 import service @@ -62,7 +60,7 @@ class TestServiceDelete(compute_fakes.TestComputev2): calls = [] for s in self.services: - calls.append(call(s.binary, ignore_missing=False)) + calls.append(mock.call(s.binary, ignore_missing=False)) self.compute_sdk_client.delete_service.assert_has_calls(calls) self.assertIsNone(result) @@ -156,10 +154,7 @@ class TestServiceList(compute_fakes.TestComputev2): self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_list_with_long_option(self, sm_mock): - sm_mock.return_value = False - + def test_service_list_with_long_option(self): arglist = [ '--host', self.service.host, @@ -187,9 +182,8 @@ class TestServiceList(compute_fakes.TestComputev2): self.assertEqual(self.columns_long, columns) self.assertEqual(self.data_long, list(data)) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_list_with_long_option_2_11(self, sm_mock): - sm_mock.return_value = True + def test_service_list_with_long_option_2_11(self): + self.set_compute_api_version('2.11') arglist = [ '--host', @@ -234,9 +228,7 @@ class TestServiceSet(compute_fakes.TestComputev2): self.cmd = service.SetService(self.app, None) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_set_nothing(self, sm_mock): - sm_mock.return_value = False + def test_set_nothing(self): arglist = [ self.service.host, self.service.binary, @@ -252,9 +244,7 @@ class TestServiceSet(compute_fakes.TestComputev2): self.compute_sdk_client.disable_service.assert_not_called() self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_enable(self, sm_mock): - sm_mock.return_value = False + def test_service_set_enable(self): arglist = [ '--enable', self.service.host, @@ -274,9 +264,7 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_disable(self, sm_mock): - sm_mock.return_value = False + def test_service_set_disable(self): arglist = [ '--disable', self.service.host, @@ -296,9 +284,7 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_disable_with_reason(self, sm_mock): - sm_mock.return_value = False + def test_service_set_disable_with_reason(self): reason = 'earthquake' arglist = [ '--disable', @@ -322,9 +308,7 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_only_with_disable_reason(self, sm_mock): - sm_mock.return_value = False + def test_service_set_only_with_disable_reason(self): reason = 'earthquake' arglist = [ '--disable-reason', @@ -348,9 +332,7 @@ class TestServiceSet(compute_fakes.TestComputev2): str(e), ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_enable_with_disable_reason(self, sm_mock): - sm_mock.return_value = False + def test_service_set_enable_with_disable_reason(self): reason = 'earthquake' arglist = [ '--enable', @@ -376,9 +358,9 @@ class TestServiceSet(compute_fakes.TestComputev2): str(e), ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_state_up(self, sm_mock): - sm_mock.side_effect = [False, True] + def test_service_set_state_up(self): + self.set_compute_api_version('2.11') + arglist = [ '--up', self.service.host, @@ -398,9 +380,9 @@ class TestServiceSet(compute_fakes.TestComputev2): self.assertNotCalled(self.compute_sdk_client.disable_service) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_state_down(self, sm_mock): - sm_mock.side_effect = [False, True] + def test_service_set_state_down(self): + self.set_compute_api_version('2.11') + arglist = [ '--down', self.service.host, @@ -420,9 +402,9 @@ class TestServiceSet(compute_fakes.TestComputev2): self.assertNotCalled(self.compute_sdk_client.disable_service) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_enable_and_state_down(self, sm_mock): - sm_mock.side_effect = [False, True] + def test_service_set_enable_and_state_down(self): + self.set_compute_api_version('2.11') + arglist = [ '--enable', '--down', @@ -445,9 +427,9 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_enable_and_state_down_with_exception(self, sm_mock): - sm_mock.side_effect = [False, True] + def test_service_set_enable_and_state_down_with_exception(self): + self.set_compute_api_version('2.11') + arglist = [ '--enable', '--down', @@ -472,11 +454,11 @@ class TestServiceSet(compute_fakes.TestComputev2): None, self.service.host, self.service.binary, True ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_2_53_disable_down(self, sm_mock): + def test_service_set_disable_down(self): # Tests disabling and forcing down a compute service with microversion # 2.53 which requires looking up the service by host and binary. - sm_mock.return_value = True + self.set_compute_api_version('2.53') + arglist = [ '--disable', '--down', @@ -503,11 +485,11 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_2_53_disable_reason(self, sm_mock): + def test_service_set_disable_reason(self): # Tests disabling with reason a compute service with microversion # 2.53 which requires looking up the service by host and binary. - sm_mock.return_value = True + self.set_compute_api_version('2.53') + reason = 'earthquake' arglist = [ '--disable', @@ -533,11 +515,11 @@ class TestServiceSet(compute_fakes.TestComputev2): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_service_set_2_53_enable_up(self, sm_mock): + def test_service_set_enable_up(self): # Tests enabling and bringing up a compute service with microversion # 2.53 which requires looking up the service by host and binary. - sm_mock.return_value = True + self.set_compute_api_version('2.53') + arglist = [ '--enable', '--up', diff --git a/openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py b/openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py index 756ea32573..425b3875c9 100644 --- a/openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +++ b/openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py @@ -12,7 +12,6 @@ import uuid -from cinderclient import api_versions from osc_lib import exceptions from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes @@ -40,7 +39,7 @@ class TestBlockStorageCleanup(TestBlockStorage): self.cmd = block_storage_cleanup.BlockStorageCleanup(self.app, None) def test_cleanup(self): - self.volume_client.api_version = api_versions.APIVersion('3.24') + self.set_volume_api_version('3.24') arglist = [] verifylist = [ @@ -96,7 +95,7 @@ class TestBlockStorageCleanup(TestBlockStorage): ) def test_cleanup_with_args(self): - self.volume_client.api_version = api_versions.APIVersion('3.24') + self.set_volume_api_version('3.24') fake_cluster = 'fake-cluster' fake_host = 'fake-host' diff --git a/openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py b/openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py index f572b060d5..758105c569 100644 --- a/openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +++ b/openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from cinderclient import api_versions from osc_lib import exceptions from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes @@ -41,7 +40,7 @@ class TestBlockStorageClusterList(TestBlockStorageCluster): ) def test_cluster_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [] verifylist = [ @@ -82,7 +81,7 @@ class TestBlockStorageClusterList(TestBlockStorageCluster): ) def test_cluster_list_with_full_options(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--cluster', @@ -152,7 +151,7 @@ class TestBlockStorageClusterList(TestBlockStorageCluster): ) def test_cluster_list_pre_v37(self): - self.volume_client.api_version = api_versions.APIVersion('3.6') + self.set_volume_api_version('3.6') arglist = [] verifylist = [ @@ -215,7 +214,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster): self.cmd = block_storage_cluster.SetBlockStorageCluster(self.app, None) def test_cluster_set(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--enable', @@ -242,7 +241,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster): ) def test_cluster_set_disable_with_reason(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--binary', @@ -272,7 +271,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster): ) def test_cluster_set_only_with_disable_reason(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--disable-reason', @@ -295,7 +294,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster): ) def test_cluster_set_enable_with_disable_reason(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--enable', @@ -319,7 +318,7 @@ class TestBlockStorageClusterSet(TestBlockStorageCluster): ) def test_cluster_set_pre_v37(self): - self.volume_client.api_version = api_versions.APIVersion('3.6') + self.set_volume_api_version('3.6') arglist = [ '--enable', @@ -385,7 +384,7 @@ class TestBlockStorageClusterShow(TestBlockStorageCluster): ) def test_cluster_show(self): - self.volume_client.api_version = api_versions.APIVersion('3.7') + self.set_volume_api_version('3.7') arglist = [ '--binary', @@ -409,7 +408,7 @@ class TestBlockStorageClusterShow(TestBlockStorageCluster): ) def test_cluster_show_pre_v37(self): - self.volume_client.api_version = api_versions.APIVersion('3.6') + self.set_volume_api_version('3.6') arglist = [ '--binary', diff --git a/openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py b/openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py index 028be2af71..58394e18b9 100644 --- a/openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +++ b/openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py @@ -12,7 +12,6 @@ # under the License. # -from cinderclient import api_versions import ddt from osc_lib import exceptions @@ -42,7 +41,8 @@ class TestBlockStorageLogLevelList(TestService): self.cmd = service.BlockStorageLogLevelList(self.app, None) def test_block_storage_log_level_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.32') + self.set_volume_api_version('3.32') + arglist = [ '--host', self.service_log.host, @@ -113,7 +113,8 @@ class TestBlockStorageLogLevelList(TestService): ) def test_block_storage_log_level_list_invalid_service_name(self): - self.volume_client.api_version = api_versions.APIVersion('3.32') + self.set_volume_api_version('3.32') + arglist = [ '--host', self.service_log.host, @@ -148,7 +149,8 @@ class TestBlockStorageLogLevelSet(TestService): self.cmd = service.BlockStorageLogLevelSet(self.app, None) def test_block_storage_log_level_set(self): - self.volume_client.api_version = api_versions.APIVersion('3.32') + self.set_volume_api_version('3.32') + arglist = [ 'ERROR', '--host', @@ -202,7 +204,8 @@ class TestBlockStorageLogLevelSet(TestService): ) def test_block_storage_log_level_set_invalid_service_name(self): - self.volume_client.api_version = api_versions.APIVersion('3.32') + self.set_volume_api_version('3.32') + arglist = [ 'ERROR', '--host', @@ -229,7 +232,8 @@ class TestBlockStorageLogLevelSet(TestService): @ddt.data('WARNING', 'info', 'Error', 'debuG', 'fake-log-level') def test_block_storage_log_level_set_log_level(self, log_level): - self.volume_client.api_version = api_versions.APIVersion('3.32') + self.set_volume_api_version('3.32') + arglist = [ log_level, '--host', diff --git a/openstackclient/tests/unit/volume/v3/test_block_storage_manage.py b/openstackclient/tests/unit/volume/v3/test_block_storage_manage.py index ca892f8918..55d7baf030 100644 --- a/openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +++ b/openstackclient/tests/unit/volume/v3/test_block_storage_manage.py @@ -12,7 +12,6 @@ from unittest import mock -from cinderclient import api_versions from osc_lib import exceptions from openstackclient.tests.unit import utils as tests_utils @@ -46,7 +45,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): ) def test_block_storage_volume_manage_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') + arglist = [ 'fake_host', ] @@ -87,6 +87,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): ) def test_block_storage_volume_manage_list__pre_v38(self): + self.set_volume_api_version('3.7') + arglist = [ 'fake_host', ] @@ -103,7 +105,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): ) def test_block_storage_volume_manage_list__pre_v317(self): - self.volume_client.api_version = api_versions.APIVersion('3.16') + self.set_volume_api_version('3.16') + arglist = [ '--cluster', 'fake_cluster', @@ -122,7 +125,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): self.assertIn('--cluster', str(exc)) def test_block_storage_volume_manage_list__host_and_cluster(self): - self.volume_client.api_version = api_versions.APIVersion('3.17') + self.set_volume_api_version('3.17') + arglist = [ 'fake_host', '--cluster', @@ -145,7 +149,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): def test_block_storage_volume_manage_list__detailed(self): """This option is deprecated.""" - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') + arglist = [ '--detailed', 'True', @@ -205,9 +210,8 @@ class TestBlockStorageVolumeManage(TestBlockStorageManage): ) def test_block_storage_volume_manage_list__all_args(self): - self.app.client_manager.volume.api_version = api_versions.APIVersion( - '3.8' - ) + self.set_volume_api_version('3.8') + arglist = [ 'fake_host', '--long', @@ -285,7 +289,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): ) def test_block_storage_snapshot_manage_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') + arglist = [ 'fake_host', ] @@ -328,6 +333,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): ) def test_block_storage_snapshot_manage_list__pre_v38(self): + self.set_volume_api_version('3.7') + arglist = [ 'fake_host', ] @@ -344,7 +351,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): ) def test_block_storage_snapshot_manage_list__pre_v317(self): - self.volume_client.api_version = api_versions.APIVersion('3.16') + self.set_volume_api_version('3.16') + arglist = [ '--cluster', 'fake_cluster', @@ -363,7 +371,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): self.assertIn('--cluster', str(exc)) def test_block_storage_snapshot_manage_list__host_and_cluster(self): - self.volume_client.api_version = api_versions.APIVersion('3.17') + self.set_volume_api_version('3.17') + arglist = [ 'fake_host', '--cluster', @@ -385,7 +394,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): ) def test_block_storage_snapshot_manage_list__detailed(self): - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') + arglist = [ '--detailed', 'True', @@ -447,9 +457,8 @@ class TestBlockStorageSnapshotManage(TestBlockStorageManage): ) def test_block_storage_snapshot_manage_list__all_args(self): - self.app.client_manager.volume.api_version = api_versions.APIVersion( - '3.8' - ) + self.set_volume_api_version('3.8') + arglist = [ '--long', '--marker', diff --git a/openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py b/openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py index 70d8911c43..609458f748 100644 --- a/openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +++ b/openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py @@ -10,10 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from unittest import mock - -from cinderclient import api_versions -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions @@ -21,29 +17,7 @@ from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes from openstackclient.volume.v3 import block_storage_resource_filter -class TestBlockStorageResourceFilter(volume_fakes.TestVolume): - def setUp(self): - super().setUp() - - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - self._set_mock_microversion( - self.app.client_manager.volume.api_version.get_string() - ) - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - - -class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter): +class TestBlockStorageResourceFilterList(volume_fakes.TestVolume): # The resource filters to be listed fake_resource_filters = volume_fakes.create_resource_filters() @@ -62,7 +36,7 @@ class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter): ) def test_resource_filter_list(self): - self._set_mock_microversion('3.33') + self.set_volume_api_version('3.33') arglist = [] verifylist = [] @@ -85,7 +59,7 @@ class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter): self.volume_sdk_client.resource_filters.assert_called_with() def test_resource_filter_list_pre_v333(self): - self._set_mock_microversion('3.32') + self.set_volume_api_version('3.32') arglist = [] verifylist = [] @@ -99,7 +73,7 @@ class TestBlockStorageResourceFilterList(TestBlockStorageResourceFilter): ) -class TestBlockStorageResourceFilterShow(TestBlockStorageResourceFilter): +class TestBlockStorageResourceFilterShow(volume_fakes.TestVolume): # The resource filters to be listed fake_resource_filter = volume_fakes.create_one_resource_filter() @@ -118,7 +92,7 @@ class TestBlockStorageResourceFilterShow(TestBlockStorageResourceFilter): ) def test_resource_filter_show(self): - self._set_mock_microversion('3.33') + self.set_volume_api_version('3.33') arglist = [ self.fake_resource_filter.resource, @@ -144,7 +118,7 @@ class TestBlockStorageResourceFilterShow(TestBlockStorageResourceFilter): ) def test_resource_filter_show_pre_v333(self): - self._set_mock_microversion('3.32') + self.set_volume_api_version('3.32') arglist = [ self.fake_resource_filter.resource, diff --git a/openstackclient/tests/unit/volume/v3/test_volume.py b/openstackclient/tests/unit/volume/v3/test_volume.py index 5b01ac3240..076de3ac3b 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume.py +++ b/openstackclient/tests/unit/volume/v3/test_volume.py @@ -10,17 +10,14 @@ # 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 copy from unittest import mock -from cinderclient import api_versions from openstack.block_storage.v3 import block_storage_summary as _summary from openstack.block_storage.v3 import snapshot as _snapshot from openstack.block_storage.v3 import volume as _volume from openstack.test import fakes as sdk_fakes -from openstack import utils as sdk_utils from osc_lib.cli import format_columns from osc_lib import exceptions from osc_lib import utils @@ -32,28 +29,6 @@ from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes from openstackclient.volume.v3 import volume -class BaseVolumeTest(volume_fakes.TestVolume): - def setUp(self): - super().setUp() - - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - self._set_mock_microversion( - self.volume_client.api_version.get_string() - ) - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - - # TODO(stephenfin): Combine these two test classes class TestVolumeCreateLegacy(volume_fakes.TestVolume): project = identity_fakes.FakeProject.create_one_project() @@ -355,6 +330,8 @@ class TestVolumeCreateLegacy(volume_fakes.TestVolume): self.assertCountEqual(self.datalist, data) def test_volume_create_with_backup(self): + self.set_volume_api_version('3.47') + backup = volume_fakes.create_one_backup() self.new_volume.backup_id = backup.id arglist = [ @@ -370,8 +347,6 @@ class TestVolumeCreateLegacy(volume_fakes.TestVolume): self.backups_mock.get.return_value = backup - self.volume_client.api_version = api_versions.APIVersion('3.47') - # In base command class ShowOne in cliff, abstract method take_action() # returns a two-part tuple with a tuple of column names and a tuple of # data to be shown. @@ -758,7 +733,7 @@ class TestVolumeCreateLegacy(volume_fakes.TestVolume): self.assertCountEqual(self.datalist, data) -class TestVolumeCreate(BaseVolumeTest): +class TestVolumeCreate(volume_fakes.TestVolume): columns = ( 'attachments', 'availability_zone', @@ -872,7 +847,7 @@ class TestVolumeCreate(BaseVolumeTest): self.assertCountEqual(self.datalist, data) def test_volume_create_remote_source_pre_v316(self): - self._set_mock_microversion('3.15') + self.set_volume_api_version('3.15') arglist = [ '--remote-source', 'key=val', @@ -895,7 +870,7 @@ class TestVolumeCreate(BaseVolumeTest): ) def test_volume_create_remote_source_host_and_cluster(self): - self._set_mock_microversion('3.16') + self.set_volume_api_version('3.16') arglist = [ '--remote-source', 'key=val', @@ -987,7 +962,7 @@ class TestVolumeCreate(BaseVolumeTest): ) -class TestVolumeDeleteLegacy(BaseVolumeTest): +class TestVolumeDeleteLegacy(volume_fakes.TestVolume): def setUp(self): super().setUp() @@ -1101,7 +1076,7 @@ class TestVolumeDeleteLegacy(BaseVolumeTest): self.assertIsNone(result) -class TestVolumeDelete(BaseVolumeTest): +class TestVolumeDelete(volume_fakes.TestVolume): def setUp(self): super().setUp() @@ -2189,7 +2164,7 @@ class TestVolumeUnset(volume_fakes.TestVolume): ) -class TestVolumeSummary(BaseVolumeTest): +class TestVolumeSummary(volume_fakes.TestVolume): columns = [ 'Total Count', 'Total Size', @@ -2211,7 +2186,7 @@ class TestVolumeSummary(BaseVolumeTest): self.cmd = volume.VolumeSummary(self.app, None) def test_volume_summary(self): - self._set_mock_microversion('3.12') + self.set_volume_api_version('3.12') arglist = [ '--all-projects', ] @@ -2246,7 +2221,7 @@ class TestVolumeSummary(BaseVolumeTest): ) def test_volume_summary_with_metadata(self): - self._set_mock_microversion('3.36') + self.set_volume_api_version('3.36') metadata = {**self.volume_a.metadata, **self.volume_b.metadata} self.summary = sdk_fakes.generate_fake_resource( @@ -2282,7 +2257,7 @@ class TestVolumeSummary(BaseVolumeTest): self.assertCountEqual(datalist, tuple(data)) -class TestVolumeRevertToSnapshot(BaseVolumeTest): +class TestVolumeRevertToSnapshot(volume_fakes.TestVolume): def setUp(self): super().setUp() @@ -2314,7 +2289,7 @@ class TestVolumeRevertToSnapshot(BaseVolumeTest): ) def test_volume_revert_to_snapshot(self): - self._set_mock_microversion('3.40') + self.set_volume_api_version('3.40') arglist = [ self.snapshot.id, ] diff --git a/openstackclient/tests/unit/volume/v3/test_volume_attachment.py b/openstackclient/tests/unit/volume/v3/test_volume_attachment.py index 10d6a9862d..320cd79695 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_attachment.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_attachment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from cinderclient import api_versions from osc_lib.cli import format_columns from osc_lib import exceptions @@ -78,7 +77,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment): self.cmd = volume_attachment.CreateVolumeAttachment(self.app, None) def test_volume_attachment_create(self): - self.volume_client.api_version = api_versions.APIVersion('3.27') + self.set_volume_api_version('3.27') arglist = [ self.volume.id, @@ -113,7 +112,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment): self.assertCountEqual(self.data, data) def test_volume_attachment_create_with_connect(self): - self.volume_client.api_version = api_versions.APIVersion('3.54') + self.set_volume_api_version('3.54') arglist = [ self.volume.id, @@ -176,7 +175,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment): self.assertCountEqual(self.data, data) def test_volume_attachment_create_pre_v327(self): - self.volume_client.api_version = api_versions.APIVersion('3.26') + self.set_volume_api_version('3.26') arglist = [ self.volume.id, @@ -196,7 +195,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment): ) def test_volume_attachment_create_with_mode_pre_v354(self): - self.volume_client.api_version = api_versions.APIVersion('3.53') + self.set_volume_api_version('3.53') arglist = [ self.volume.id, @@ -219,7 +218,7 @@ class TestVolumeAttachmentCreate(TestVolumeAttachment): ) def test_volume_attachment_create_with_connect_missing_arg(self): - self.volume_client.api_version = api_versions.APIVersion('3.54') + self.set_volume_api_version('3.54') arglist = [ self.volume.id, @@ -254,7 +253,7 @@ class TestVolumeAttachmentDelete(TestVolumeAttachment): self.cmd = volume_attachment.DeleteVolumeAttachment(self.app, None) def test_volume_attachment_delete(self): - self.volume_client.api_version = api_versions.APIVersion('3.27') + self.set_volume_api_version('3.27') arglist = [ self.volume_attachment.id, @@ -272,7 +271,7 @@ class TestVolumeAttachmentDelete(TestVolumeAttachment): self.assertIsNone(result) def test_volume_attachment_delete_pre_v327(self): - self.volume_client.api_version = api_versions.APIVersion('3.26') + self.set_volume_api_version('3.26') arglist = [ self.volume_attachment.id, @@ -324,7 +323,7 @@ class TestVolumeAttachmentSet(TestVolumeAttachment): self.cmd = volume_attachment.SetVolumeAttachment(self.app, None) def test_volume_attachment_set(self): - self.volume_client.api_version = api_versions.APIVersion('3.27') + self.set_volume_api_version('3.27') arglist = [ self.volume_attachment.id, @@ -376,7 +375,7 @@ class TestVolumeAttachmentSet(TestVolumeAttachment): self.assertCountEqual(self.data, data) def test_volume_attachment_set_pre_v327(self): - self.volume_client.api_version = api_versions.APIVersion('3.26') + self.set_volume_api_version('3.26') arglist = [ self.volume_attachment.id, @@ -408,7 +407,7 @@ class TestVolumeAttachmentComplete(TestVolumeAttachment): self.cmd = volume_attachment.CompleteVolumeAttachment(self.app, None) def test_volume_attachment_complete(self): - self.volume_client.api_version = api_versions.APIVersion('3.44') + self.set_volume_api_version('3.44') arglist = [ self.volume_attachment.id, @@ -426,7 +425,7 @@ class TestVolumeAttachmentComplete(TestVolumeAttachment): self.assertIsNone(result) def test_volume_attachment_complete_pre_v344(self): - self.volume_client.api_version = api_versions.APIVersion('3.43') + self.set_volume_api_version('3.43') arglist = [ self.volume_attachment.id, @@ -475,7 +474,7 @@ class TestVolumeAttachmentList(TestVolumeAttachment): self.cmd = volume_attachment.ListVolumeAttachment(self.app, None) def test_volume_attachment_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.27') + self.set_volume_api_version('3.27') arglist = [] verifylist = [ @@ -504,7 +503,7 @@ class TestVolumeAttachmentList(TestVolumeAttachment): self.assertCountEqual(tuple(self.data), data) def test_volume_attachment_list_with_options(self): - self.volume_client.api_version = api_versions.APIVersion('3.27') + self.set_volume_api_version('3.27') arglist = [ '--project', @@ -544,7 +543,7 @@ class TestVolumeAttachmentList(TestVolumeAttachment): self.assertCountEqual(tuple(self.data), data) def test_volume_attachment_list_pre_v327(self): - self.volume_client.api_version = api_versions.APIVersion('3.26') + self.set_volume_api_version('3.26') arglist = [] verifylist = [ diff --git a/openstackclient/tests/unit/volume/v3/test_volume_backup.py b/openstackclient/tests/unit/volume/v3/test_volume_backup.py index dfa3084dd1..d4e7e79248 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_backup.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_backup.py @@ -10,13 +10,9 @@ # 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 unittest import mock from unittest.mock import call -from cinderclient import api_versions -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes @@ -37,29 +33,7 @@ class TestBackupLegacy(volume_fakes.TestVolume): self.restores_mock.reset_mock() -class TestBackup(volume_fakes.TestVolume): - def setUp(self): - super().setUp() - - patcher = mock.patch.object( - sdk_utils, 'supports_microversion', return_value=True - ) - self.addCleanup(patcher.stop) - self.supports_microversion_mock = patcher.start() - self._set_mock_microversion( - self.app.client_manager.volume.api_version.get_string() - ) - - def _set_mock_microversion(self, mock_v): - """Set a specific microversion for the mock supports_microversion().""" - self.supports_microversion_mock.reset_mock(return_value=True) - self.supports_microversion_mock.side_effect = ( - lambda _, v: api_versions.APIVersion(v) - <= api_versions.APIVersion(mock_v) - ) - - -class TestBackupCreate(TestBackup): +class TestBackupCreate(volume_fakes.TestVolume): volume = volume_fakes.create_one_volume() snapshot = volume_fakes.create_one_snapshot() new_backup = volume_fakes.create_one_backup( @@ -127,7 +101,7 @@ class TestBackupCreate(TestBackup): self.assertEqual(self.data, data) def test_backup_create_with_properties(self): - self._set_mock_microversion('3.43') + self.set_volume_api_version('3.43') arglist = [ "--property", @@ -157,7 +131,7 @@ class TestBackupCreate(TestBackup): self.assertEqual(self.data, data) def test_backup_create_with_properties_pre_v343(self): - self._set_mock_microversion('3.42') + self.set_volume_api_version('3.42') arglist = [ "--property", @@ -178,7 +152,7 @@ class TestBackupCreate(TestBackup): self.assertIn("--os-volume-api-version 3.43 or greater", str(exc)) def test_backup_create_with_availability_zone(self): - self._set_mock_microversion('3.51') + self.set_volume_api_version('3.51') arglist = [ "--availability-zone", @@ -206,7 +180,7 @@ class TestBackupCreate(TestBackup): self.assertEqual(self.data, data) def test_backup_create_with_availability_zone_pre_v351(self): - self._set_mock_microversion('3.50') + self.set_volume_api_version('3.50') arglist = [ "--availability-zone", @@ -253,7 +227,7 @@ class TestBackupCreate(TestBackup): self.assertEqual(self.data, data) -class TestBackupDelete(TestBackup): +class TestBackupDelete(volume_fakes.TestVolume): backups = volume_fakes.create_backups(count=2) def setUp(self): @@ -346,7 +320,7 @@ class TestBackupDelete(TestBackup): ) -class TestBackupList(TestBackup): +class TestBackupList(volume_fakes.TestVolume): volume = volume_fakes.create_one_volume() backups = volume_fakes.create_backups( attrs={'volume_id': volume.name}, count=3 @@ -479,7 +453,7 @@ class TestBackupList(TestBackup): self.assertCountEqual(self.data_long, list(data)) -class TestBackupRestore(TestBackup): +class TestBackupRestore(volume_fakes.TestVolume): volume = volume_fakes.create_one_volume() backup = volume_fakes.create_one_backup( attrs={'volume_id': volume.id}, @@ -593,7 +567,7 @@ class TestBackupSet(TestBackupLegacy): self.cmd = volume_backup.SetVolumeBackup(self.app, None) def test_backup_set_name(self): - self.volume_client.api_version = api_versions.APIVersion('3.9') + self.set_volume_api_version('3.9') arglist = [ '--name', @@ -615,7 +589,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIsNone(result) def test_backup_set_name_pre_v39(self): - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') arglist = [ '--name', @@ -634,7 +608,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIn("--os-volume-api-version 3.9 or greater", str(exc)) def test_backup_set_description(self): - self.volume_client.api_version = api_versions.APIVersion('3.9') + self.set_volume_api_version('3.9') arglist = [ '--description', @@ -658,7 +632,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIsNone(result) def test_backup_set_description_pre_v39(self): - self.volume_client.api_version = api_versions.APIVersion('3.8') + self.set_volume_api_version('3.8') arglist = [ '--description', @@ -707,7 +681,7 @@ class TestBackupSet(TestBackupLegacy): ) def test_backup_set_no_property(self): - self.volume_client.api_version = api_versions.APIVersion('3.43') + self.set_volume_api_version('3.43') arglist = [ '--no-property', @@ -731,7 +705,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIsNone(result) def test_backup_set_no_property_pre_v343(self): - self.volume_client.api_version = api_versions.APIVersion('3.42') + self.set_volume_api_version('3.42') arglist = [ '--no-property', @@ -749,7 +723,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIn("--os-volume-api-version 3.43 or greater", str(exc)) def test_backup_set_property(self): - self.volume_client.api_version = api_versions.APIVersion('3.43') + self.set_volume_api_version('3.43') arglist = [ '--property', @@ -774,7 +748,7 @@ class TestBackupSet(TestBackupLegacy): self.assertIsNone(result) def test_backup_set_property_pre_v343(self): - self.volume_client.api_version = api_versions.APIVersion('3.42') + self.set_volume_api_version('3.42') arglist = [ '--property', @@ -807,7 +781,7 @@ class TestBackupUnset(TestBackupLegacy): self.cmd = volume_backup.UnsetVolumeBackup(self.app, None) def test_backup_unset_property(self): - self.volume_client.api_version = api_versions.APIVersion('3.43') + self.set_volume_api_version('3.43') arglist = [ '--property', @@ -832,7 +806,7 @@ class TestBackupUnset(TestBackupLegacy): self.assertIsNone(result) def test_backup_unset_property_pre_v343(self): - self.volume_client.api_version = api_versions.APIVersion('3.42') + self.set_volume_api_version('3.42') arglist = [ '--property', @@ -851,7 +825,7 @@ class TestBackupUnset(TestBackupLegacy): self.assertIn("--os-volume-api-version 3.43 or greater", str(exc)) -class TestBackupShow(TestBackup): +class TestBackupShow(volume_fakes.TestVolume): backup = volume_fakes.create_one_backup() columns = ( diff --git a/openstackclient/tests/unit/volume/v3/test_volume_group.py b/openstackclient/tests/unit/volume/v3/test_volume_group.py index 444ea707f5..3b64ad95c5 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_group.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_group.py @@ -12,7 +12,6 @@ from unittest import mock -from cinderclient import api_versions from osc_lib import exceptions from openstackclient.tests.unit import utils as tests_utils @@ -96,7 +95,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): self.cmd = volume_group.CreateVolumeGroup(self.app, None) def test_volume_group_create(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ '--volume-group-type', @@ -132,7 +131,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_create__legacy(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ self.fake_volume_group_type.id, @@ -172,7 +171,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): ) def test_volume_group_create_no_volume_type(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ '--volume-group-type', @@ -194,7 +193,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): ) def test_volume_group_create_with_options(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ '--volume-group-type', @@ -236,7 +235,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_create_pre_v313(self): - self.volume_client.api_version = api_versions.APIVersion('3.12') + self.set_volume_api_version('3.12') arglist = [ '--volume-group-type', @@ -261,7 +260,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): ) def test_volume_group_create_from_source_group(self): - self.volume_client.api_version = api_versions.APIVersion('3.14') + self.set_volume_api_version('3.14') arglist = [ '--source-group', @@ -290,7 +289,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_create_from_group_snapshot(self): - self.volume_client.api_version = api_versions.APIVersion('3.14') + self.set_volume_api_version('3.14') arglist = [ '--group-snapshot', @@ -319,7 +318,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_create_from_src_pre_v314(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ '--source-group', @@ -338,7 +337,7 @@ class TestVolumeGroupCreate(TestVolumeGroup): ) def test_volume_group_create_from_src_source_group_group_snapshot(self): - self.volume_client.api_version = api_versions.APIVersion('3.14') + self.set_volume_api_version('3.14') arglist = [ '--source-group', @@ -376,7 +375,7 @@ class TestVolumeGroupDelete(TestVolumeGroup): self.cmd = volume_group.DeleteVolumeGroup(self.app, None) def test_volume_group_delete(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ self.fake_volume_group.id, @@ -397,7 +396,7 @@ class TestVolumeGroupDelete(TestVolumeGroup): self.assertIsNone(result) def test_volume_group_delete_pre_v313(self): - self.volume_client.api_version = api_versions.APIVersion('3.12') + self.set_volume_api_version('3.12') arglist = [ self.fake_volume_group.id, @@ -455,7 +454,7 @@ class TestVolumeGroupSet(TestVolumeGroup): self.cmd = volume_group.SetVolumeGroup(self.app, None) def test_volume_group_set(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ self.fake_volume_group.id, @@ -482,7 +481,7 @@ class TestVolumeGroupSet(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_with_enable_replication_option(self): - self.volume_client.api_version = api_versions.APIVersion('3.38') + self.set_volume_api_version('3.38') arglist = [ self.fake_volume_group.id, @@ -503,7 +502,7 @@ class TestVolumeGroupSet(TestVolumeGroup): self.assertCountEqual(self.data, data) def test_volume_group_set_pre_v313(self): - self.volume_client.api_version = api_versions.APIVersion('3.12') + self.set_volume_api_version('3.12') arglist = [ self.fake_volume_group.id, @@ -527,7 +526,7 @@ class TestVolumeGroupSet(TestVolumeGroup): ) def test_volume_group_with_enable_replication_option_pre_v338(self): - self.volume_client.api_version = api_versions.APIVersion('3.37') + self.set_volume_api_version('3.37') arglist = [ self.fake_volume_group.id, @@ -572,7 +571,7 @@ class TestVolumeGroupList(TestVolumeGroup): self.cmd = volume_group.ListVolumeGroup(self.app, None) def test_volume_group_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.13') + self.set_volume_api_version('3.13') arglist = [ '--all-projects', @@ -593,7 +592,7 @@ class TestVolumeGroupList(TestVolumeGroup): self.assertCountEqual(tuple(self.data), data) def test_volume_group_list_pre_v313(self): - self.volume_client.api_version = api_versions.APIVersion('3.12') + self.set_volume_api_version('3.12') arglist = [ '--all-projects', @@ -623,7 +622,7 @@ class TestVolumeGroupFailover(TestVolumeGroup): self.cmd = volume_group.FailoverVolumeGroup(self.app, None) def test_volume_group_failover(self): - self.volume_client.api_version = api_versions.APIVersion('3.38') + self.set_volume_api_version('3.38') arglist = [ self.fake_volume_group.id, @@ -648,7 +647,7 @@ class TestVolumeGroupFailover(TestVolumeGroup): self.assertIsNone(result) def test_volume_group_failover_pre_v338(self): - self.volume_client.api_version = api_versions.APIVersion('3.37') + self.set_volume_api_version('3.37') arglist = [ self.fake_volume_group.id, diff --git a/openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py b/openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py index baa50980b4..23ba4ec97b 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py @@ -10,28 +10,15 @@ # License for the specific language governing permissions and limitations # under the License. -from unittest import mock - -from keystoneauth1 import discover from openstack.block_storage.v3 import group as _group from openstack.block_storage.v3 import group_snapshot as _group_snapshot from openstack.test import fakes as sdk_fakes -from openstack import utils as sdk_utils from osc_lib import exceptions from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes from openstackclient.volume.v3 import volume_group_snapshot -def fake_supports_microversion(mocked_version): - def supports_microversion(adapter, microversion, raise_exception=False): - required = discover.normalize_version_number(microversion) - candidate = discover.normalize_version_number(mocked_version) - return discover.version_match(required, candidate) - - return supports_microversion - - class TestVolumeGroupSnapshotCreate(volume_fakes.TestVolume): fake_volume_group = sdk_fakes.generate_fake_resource(_group.Group) fake_volume_group_snapshot = sdk_fakes.generate_fake_resource( @@ -70,9 +57,8 @@ class TestVolumeGroupSnapshotCreate(volume_fakes.TestVolume): self.app, None ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_create(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.14') + def test_volume_group_snapshot_create(self): + self.set_volume_api_version('3.14') arglist = [ self.fake_volume_group.id, @@ -99,9 +85,8 @@ class TestVolumeGroupSnapshotCreate(volume_fakes.TestVolume): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_create_with_options(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.14') + def test_volume_group_snapshot_create_with_options(self): + self.set_volume_api_version('3.14') arglist = [ self.fake_volume_group.id, @@ -132,9 +117,8 @@ class TestVolumeGroupSnapshotCreate(volume_fakes.TestVolume): self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_create_pre_v314(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.13') + def test_volume_group_snapshot_create_pre_v314(self): + self.set_volume_api_version('3.13') arglist = [ self.fake_volume_group.id, @@ -174,9 +158,8 @@ class TestVolumeGroupSnapshotDelete(volume_fakes.TestVolume): self.app, None ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_delete(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.14') + def test_volume_group_snapshot_delete(self): + self.set_volume_api_version('3.14') arglist = [ self.fake_volume_group_snapshot.id, @@ -193,9 +176,8 @@ class TestVolumeGroupSnapshotDelete(volume_fakes.TestVolume): ) self.assertIsNone(result) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_delete_pre_v314(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.13') + def test_volume_group_snapshot_delete_pre_v314(self): + self.set_volume_api_version('3.13') arglist = [ self.fake_volume_group_snapshot.id, @@ -249,9 +231,8 @@ class TestVolumeGroupSnapshotList(volume_fakes.TestVolume): self.app, None ) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_list(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.14') + def test_volume_group_snapshot_list(self): + self.set_volume_api_version('3.14') arglist = [ '--all-projects', @@ -269,9 +250,8 @@ class TestVolumeGroupSnapshotList(volume_fakes.TestVolume): self.assertEqual(self.columns, columns) self.assertCountEqual(tuple(self.data), data) - @mock.patch.object(sdk_utils, 'supports_microversion') - def test_volume_group_snapshot_list_pre_v314(self, mock_mv): - mock_mv.side_effect = fake_supports_microversion('3.13') + def test_volume_group_snapshot_list_pre_v314(self): + self.set_volume_api_version('3.13') arglist = [] verifylist = [ diff --git a/openstackclient/tests/unit/volume/v3/test_volume_group_type.py b/openstackclient/tests/unit/volume/v3/test_volume_group_type.py index 62c41962d3..21db03d77c 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_group_type.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_group_type.py @@ -12,7 +12,6 @@ from unittest import mock -from cinderclient import api_versions from osc_lib.cli import format_columns from osc_lib import exceptions @@ -56,7 +55,7 @@ class TestVolumeGroupTypeCreate(TestVolumeGroupType): self.cmd = volume_group_type.CreateVolumeGroupType(self.app, None) def test_volume_group_type_create(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ self.fake_volume_group_type.name, @@ -77,7 +76,7 @@ class TestVolumeGroupTypeCreate(TestVolumeGroupType): self.assertCountEqual(self.data, data) def test_volume_group_type_create_with_options(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ self.fake_volume_group_type.name, @@ -101,7 +100,7 @@ class TestVolumeGroupTypeCreate(TestVolumeGroupType): self.assertCountEqual(self.data, data) def test_volume_group_type_create_pre_v311(self): - self.volume_client.api_version = api_versions.APIVersion('3.10') + self.set_volume_api_version('3.10') arglist = [ self.fake_volume_group_type.name, @@ -135,7 +134,7 @@ class TestVolumeGroupTypeDelete(TestVolumeGroupType): self.cmd = volume_group_type.DeleteVolumeGroupType(self.app, None) def test_volume_group_type_delete(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ self.fake_volume_group_type.id, @@ -153,7 +152,7 @@ class TestVolumeGroupTypeDelete(TestVolumeGroupType): self.assertIsNone(result) def test_volume_group_type_delete_pre_v311(self): - self.volume_client.api_version = api_versions.APIVersion('3.10') + self.set_volume_api_version('3.10') arglist = [ self.fake_volume_group_type.id, @@ -208,7 +207,7 @@ class TestVolumeGroupTypeSet(TestVolumeGroupType): self.cmd = volume_group_type.SetVolumeGroupType(self.app, None) def test_volume_group_type_set(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') self.fake_volume_group_type.set_keys.return_value = None @@ -247,7 +246,7 @@ class TestVolumeGroupTypeSet(TestVolumeGroupType): self.assertCountEqual(self.data, data) def test_volume_group_type_with_no_property_option(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ self.fake_volume_group_type.id, @@ -278,7 +277,7 @@ class TestVolumeGroupTypeSet(TestVolumeGroupType): self.assertCountEqual(self.data, data) def test_volume_group_type_set_pre_v311(self): - self.volume_client.api_version = api_versions.APIVersion('3.10') + self.set_volume_api_version('3.10') arglist = [ self.fake_volume_group_type.id, @@ -335,7 +334,7 @@ class TestVolumeGroupTypeUnset(TestVolumeGroupType): self.cmd = volume_group_type.UnsetVolumeGroupType(self.app, None) def test_volume_group_type_unset(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ self.fake_volume_group_type.id, @@ -363,7 +362,7 @@ class TestVolumeGroupTypeUnset(TestVolumeGroupType): self.assertCountEqual(self.data, data) def test_volume_group_type_unset_pre_v311(self): - self.volume_client.api_version = api_versions.APIVersion('3.10') + self.set_volume_api_version('3.10') arglist = [ self.fake_volume_group_type.id, @@ -416,7 +415,7 @@ class TestVolumeGroupTypeList(TestVolumeGroupType): self.cmd = volume_group_type.ListVolumeGroupType(self.app, None) def test_volume_group_type_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [] verifylist = [ @@ -431,7 +430,7 @@ class TestVolumeGroupTypeList(TestVolumeGroupType): self.assertCountEqual(tuple(self.data), data) def test_volume_group_type_list_with_default_option(self): - self.volume_client.api_version = api_versions.APIVersion('3.11') + self.set_volume_api_version('3.11') arglist = [ '--default', @@ -448,7 +447,7 @@ class TestVolumeGroupTypeList(TestVolumeGroupType): self.assertCountEqual(tuple([self.data[0]]), data) def test_volume_group_type_list_pre_v311(self): - self.volume_client.api_version = api_versions.APIVersion('3.10') + self.set_volume_api_version('3.10') arglist = [] verifylist = [] diff --git a/openstackclient/tests/unit/volume/v3/test_volume_message.py b/openstackclient/tests/unit/volume/v3/test_volume_message.py index 63349f49dd..4b4f6e41df 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_message.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_message.py @@ -12,7 +12,6 @@ from unittest.mock import call -from cinderclient import api_versions from osc_lib import exceptions from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes @@ -46,7 +45,7 @@ class TestVolumeMessageDelete(TestVolumeMessage): self.cmd = volume_message.DeleteMessage(self.app, None) def test_message_delete(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [ self.fake_messages[0].id, @@ -64,7 +63,7 @@ class TestVolumeMessageDelete(TestVolumeMessage): self.assertIsNone(result) def test_message_delete_multiple_messages(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [ self.fake_messages[0].id, @@ -84,7 +83,7 @@ class TestVolumeMessageDelete(TestVolumeMessage): self.assertIsNone(result) def test_message_delete_multiple_messages_with_exception(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [ self.fake_messages[0].id, @@ -114,7 +113,7 @@ class TestVolumeMessageDelete(TestVolumeMessage): self.assertEqual(2, self.volume_messages_mock.delete.call_count) def test_message_delete_pre_v33(self): - self.volume_client.api_version = api_versions.APIVersion('3.2') + self.set_volume_api_version('3.2') arglist = [ self.fake_messages[0].id, @@ -172,7 +171,7 @@ class TestVolumeMessageList(TestVolumeMessage): self.cmd = volume_message.ListMessages(self.app, None) def test_message_list(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [] verifylist = [ @@ -196,7 +195,7 @@ class TestVolumeMessageList(TestVolumeMessage): self.assertCountEqual(self.data, list(data)) def test_message_list_with_options(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [ '--project', @@ -227,7 +226,7 @@ class TestVolumeMessageList(TestVolumeMessage): self.assertCountEqual(self.data, list(data)) def test_message_list_pre_v33(self): - self.volume_client.api_version = api_versions.APIVersion('3.2') + self.set_volume_api_version('3.2') arglist = [] verifylist = [ @@ -280,7 +279,7 @@ class TestVolumeMessageShow(TestVolumeMessage): self.cmd = volume_message.ShowMessage(self.app, None) def test_message_show(self): - self.volume_client.api_version = api_versions.APIVersion('3.3') + self.set_volume_api_version('3.3') arglist = [self.fake_message.id] verifylist = [('message_id', self.fake_message.id)] @@ -293,7 +292,7 @@ class TestVolumeMessageShow(TestVolumeMessage): self.assertEqual(self.data, data) def test_message_show_pre_v33(self): - self.volume_client.api_version = api_versions.APIVersion('3.2') + self.set_volume_api_version('3.2') arglist = [self.fake_message.id] verifylist = [('message_id', self.fake_message.id)] diff --git a/openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py b/openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py index 0781247882..1871bde73d 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py @@ -15,7 +15,6 @@ from unittest import mock from unittest.mock import call -from cinderclient import api_versions from osc_lib import exceptions from osc_lib import utils @@ -177,7 +176,7 @@ class TestTransferCreate(TestTransfer): self.assertEqual(self.data, data) def test_transfer_create_with_no_snapshots(self): - self.volume_client.api_version = api_versions.APIVersion('3.55') + self.set_volume_api_version('3.55') arglist = [ '--no-snapshots', @@ -199,7 +198,7 @@ class TestTransferCreate(TestTransfer): self.assertEqual(self.data, data) def test_transfer_create_pre_v355(self): - self.volume_client.api_version = api_versions.APIVersion('3.54') + self.set_volume_api_version('3.54') arglist = [ '--no-snapshots', diff --git a/openstackclient/tests/unit/volume/v3/test_volume_type.py b/openstackclient/tests/unit/volume/v3/test_volume_type.py index 5f791da256..828f8b0902 100644 --- a/openstackclient/tests/unit/volume/v3/test_volume_type.py +++ b/openstackclient/tests/unit/volume/v3/test_volume_type.py @@ -14,7 +14,6 @@ from unittest import mock from unittest.mock import call -from cinderclient import api_versions from osc_lib.cli import format_columns from osc_lib import exceptions from osc_lib import utils @@ -434,9 +433,7 @@ class TestTypeList(TestType): self.assertCountEqual(self.data_with_default_type, list(data)) def test_type_list_with_properties(self): - self.app.client_manager.volume.api_version = api_versions.APIVersion( - '3.52' - ) + self.set_volume_api_version('3.52') arglist = [ "--property", @@ -477,9 +474,7 @@ class TestTypeList(TestType): self.assertCountEqual(self.data, list(data)) def test_type_list_with_properties_pre_v352(self): - self.app.client_manager.volume.api_version = api_versions.APIVersion( - '3.51' - ) + self.set_volume_api_version('3.51') arglist = [ "--property",