diff --git a/cinder/test.py b/cinder/test.py index 1defd495ab6..a72391a308a 100644 --- a/cinder/test.py +++ b/cinder/test.py @@ -356,11 +356,28 @@ class TestCase(testtools.TestCase): self.assertEqual(call[1], posargs[2]) def assertTrue(self, x, *args, **kwargs): - if isinstance(x, six.string_types): - raise AssertionError("%s (%s) is a string. Use a more " - "specific assertion such as assertEqual." % - (x, type(x))) - super(TestCase, self).assertTrue(x, *args, **kwargs) + """Assert that value is True. + + If original behavior is required we will need to do: + assertTrue(bool(result)) + """ + # assertTrue uses msg but assertIs uses message keyword argument + args = list(args) + msg = kwargs.pop('msg', args.pop(0) if args else '') + kwargs.setdefault('message', msg) + self.assertIs(True, x, *args, **kwargs) + + def assertFalse(self, x, *args, **kwargs): + """Assert that value is False. + + If original behavior is required we will need to do: + assertFalse(bool(result)) + """ + # assertTrue uses msg but assertIs uses message keyword argument + args = list(args) + msg = kwargs.pop('msg', args.pop(0) if args else '') + kwargs.setdefault('message', msg) + self.assertIs(False, x, *args, **kwargs) class ModelsObjectComparatorMixin(object): diff --git a/cinder/tests/unit/api/openstack/test_api_version_request.py b/cinder/tests/unit/api/openstack/test_api_version_request.py index 214842c9256..8b4229223bb 100644 --- a/cinder/tests/unit/api/openstack/test_api_version_request.py +++ b/cinder/tests/unit/api/openstack/test_api_version_request.py @@ -64,11 +64,11 @@ class APIVersionRequestTests(test.TestCase): def test_null_version(self): v = api_version_request.APIVersionRequest() - self.assertFalse(v) + self.assertFalse(bool(v)) def test_not_null_version(self): v = api_version_request.APIVersionRequest('1.1') - self.assertTrue(v) + self.assertTrue(bool(v)) @ddt.data('2', '200', '2.1.4', '200.23.66.3', '5 .3', '5. 3', '5.03', '02.1', '2.001', '', ' 2.1', '2.1 ') diff --git a/cinder/tests/unit/api/v2/test_snapshots.py b/cinder/tests/unit/api/v2/test_snapshots.py index be35d396481..3e656ce2c61 100644 --- a/cinder/tests/unit/api/v2/test_snapshots.py +++ b/cinder/tests/unit/api/v2/test_snapshots.py @@ -464,7 +464,7 @@ class SnapshotApiTest(test.TestCase): links = res['snapshots_links'] # Must be a list of links, even if we only get 1 back - self.assertTrue(list, type(links)) + self.assertIsInstance(links, list) next_link = links[0] # rel entry must be next diff --git a/cinder/tests/unit/brick/test_brick_lvm.py b/cinder/tests/unit/brick/test_brick_lvm.py index 10653a5eee0..ec1a79493f0 100644 --- a/cinder/tests/unit/brick/test_brick_lvm.py +++ b/cinder/tests/unit/brick/test_brick_lvm.py @@ -393,7 +393,7 @@ class BrickLvmTestCase(test.TestCase): def test_lv_get_origin(self): self.assertEqual('fake-volume-1', self.vg.lv_get_origin('fake-snapshot')) - self.assertFalse(None, self.vg.lv_get_origin('test-volumes')) + self.assertIsNone(self.vg.lv_get_origin('test-volumes')) def test_activate_lv(self): with mock.patch.object(self.vg, '_execute'): diff --git a/cinder/tests/unit/objects/test_cluster.py b/cinder/tests/unit/objects/test_cluster.py index 7cef0d318ab..3a2fcf6eb1f 100644 --- a/cinder/tests/unit/objects/test_cluster.py +++ b/cinder/tests/unit/objects/test_cluster.py @@ -90,7 +90,7 @@ class TestCluster(test_objects.BaseObjectsTestCase): def test_is_up_no_last_hearbeat(self): cluster = fake_cluster.fake_cluster_ovo(self.context, last_heartbeat=None) - self.assertFalse(cluster.is_up) + self.assertFalse(bool(cluster.is_up)) def test_is_up(self): cluster = fake_cluster.fake_cluster_ovo( diff --git a/cinder/tests/unit/objects/test_volume.py b/cinder/tests/unit/objects/test_volume.py index 6aceea4dde1..641db65c323 100644 --- a/cinder/tests/unit/objects/test_volume.py +++ b/cinder/tests/unit/objects/test_volume.py @@ -580,7 +580,7 @@ class TestVolume(test_objects.BaseObjectsTestCase): def test_is_replicated_no_type(self): volume = fake_volume.fake_volume_obj( self.context, volume_type_id=None, volume_type=None) - self.assertFalse(volume.is_replicated()) + self.assertFalse(bool(volume.is_replicated())) @ddt.ddt diff --git a/cinder/tests/unit/objects/test_volume_type.py b/cinder/tests/unit/objects/test_volume_type.py index bcf523e533b..2371a5ca08d 100644 --- a/cinder/tests/unit/objects/test_volume_type.py +++ b/cinder/tests/unit/objects/test_volume_type.py @@ -219,7 +219,7 @@ class TestVolumeType(test_objects.BaseObjectsTestCase): def test_is_replicated_no_specs(self): volume_type = fake_volume.fake_volume_type_obj( self.context, extra_specs={}) - self.assertFalse(volume_type.is_replicated()) + self.assertFalse(bool(volume_type.is_replicated())) @ddt.data(' False', ' false', ' f', 'baddata', 'bad data') def test_is_replicated_specs_false(self, not_enabled): diff --git a/cinder/tests/unit/scheduler/test_host_filters.py b/cinder/tests/unit/scheduler/test_host_filters.py index c9f60d66068..63a29a3beed 100644 --- a/cinder/tests/unit/scheduler/test_host_filters.py +++ b/cinder/tests/unit/scheduler/test_host_filters.py @@ -731,7 +731,7 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': vol_id}} - self.assertTrue(filt_cls.backend_passes(host, filter_properties)) + self.assertTrue(bool(filt_cls.backend_passes(host, filter_properties))) def test_same_filter_passes(self): filt_cls = self.class_map['SameBackendFilter']() @@ -743,7 +743,7 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': [vol_id], }} - self.assertTrue(filt_cls.backend_passes(host, filter_properties)) + self.assertTrue(bool(filt_cls.backend_passes(host, filter_properties))) def test_same_filter_legacy_vol_fails(self): filt_cls = self.class_map['SameBackendFilter']() @@ -755,7 +755,8 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': [vol_id], }} - self.assertFalse(filt_cls.backend_passes(host, filter_properties)) + result = filt_cls.backend_passes(host, filter_properties) + self.assertEqual([], result.objects) def test_same_filter_fails(self): filt_cls = self.class_map['SameBackendFilter']() @@ -767,7 +768,8 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': [vol_id], }} - self.assertFalse(filt_cls.backend_passes(host, filter_properties)) + result = filt_cls.backend_passes(host, filter_properties) + self.assertEqual([], result.objects) def test_same_filter_vol_list_pass(self): filt_cls = self.class_map['SameBackendFilter']() @@ -781,7 +783,7 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': [vol_id1, vol_id2], }} - self.assertTrue(filt_cls.backend_passes(host, filter_properties)) + self.assertTrue(bool(filt_cls.backend_passes(host, filter_properties))) def test_same_filter_handles_none(self): filt_cls = self.class_map['SameBackendFilter']() @@ -803,7 +805,8 @@ class AffinityFilterTestCase(BackendFiltersTestCase): 'scheduler_hints': { 'same_host': [vol_id], }} - self.assertFalse(filt_cls.backend_passes(host, filter_properties)) + result = filt_cls.backend_passes(host, filter_properties) + self.assertEqual([], result.objects) def test_same_filter_fail_nonuuid_hint(self): filt_cls = self.class_map['SameBackendFilter']() diff --git a/cinder/tests/unit/scheduler/test_host_manager.py b/cinder/tests/unit/scheduler/test_host_manager.py index 81b5db813b3..f233184adf2 100644 --- a/cinder/tests/unit/scheduler/test_host_manager.py +++ b/cinder/tests/unit/scheduler/test_host_manager.py @@ -187,7 +187,7 @@ class HostManagerTestCase(test.TestCase): self.host_manager.service_states_last_update['host1']) # notify capab1 to ceilometer by S0 - self.assertTrue(1, _mock_get_usage_and_notify.call_count) + self.assertEqual(1, _mock_get_usage_and_notify.call_count) # S1: update_service_capabilities() self.host_manager_1.update_service_capabilities(service_name, 'host1', @@ -263,7 +263,7 @@ class HostManagerTestCase(test.TestCase): dict(dict(timestamp=31339), **capab1)) # Don't notify capab1 to ceilometer. - self.assertTrue(1, _mock_get_usage_and_notify.call_count) + self.assertEqual(0, _mock_get_usage_and_notify.call_count) @mock.patch( 'cinder.scheduler.host_manager.HostManager.get_usage_and_notify') @@ -311,7 +311,7 @@ class HostManagerTestCase(test.TestCase): self.host_manager.service_states['host1']) # Don't notify capab1 to ceilometer. - self.assertTrue(1, _mock_get_usage_and_notify.call_count) + self.assertEqual(0, _mock_get_usage_and_notify.call_count) # S0: update_service_capabilities() self.host_manager.update_service_capabilities(service_name, 'host1', @@ -397,7 +397,7 @@ class HostManagerTestCase(test.TestCase): self.host_manager_1.service_states_last_update['host1']) # notify capab2 to ceilometer. - self.assertTrue(2, _mock_get_usage_and_notify.call_count) + self.assertLess(0, _mock_get_usage_and_notify.call_count) # S1: update_service_capabilities() self.host_manager_1.update_service_capabilities(service_name, 'host1', @@ -471,7 +471,7 @@ class HostManagerTestCase(test.TestCase): self.host_manager.service_states['host1']) # S0 notify capab2 to ceilometer. - self.assertTrue(3, _mock_get_usage_and_notify.call_count) + self.assertLess(0, _mock_get_usage_and_notify.call_count) # S0: update_service_capabilities() self.host_manager.update_service_capabilities(service_name, 'host1', diff --git a/cinder/tests/unit/targets/test_base_iscsi_driver.py b/cinder/tests/unit/targets/test_base_iscsi_driver.py index 8c935a2e4d8..8d4373d34cd 100644 --- a/cinder/tests/unit/targets/test_base_iscsi_driver.py +++ b/cinder/tests/unit/targets/test_base_iscsi_driver.py @@ -136,7 +136,7 @@ class TestBaseISCSITargetDriver(tf.TargetDriverFixture): bad_connector) connector = {'initiator': 'fake_init'} - self.assertTrue(self.target.validate_connector, + self.assertTrue(bool(self.target.validate_connector), connector) def test_show_target_error(self): diff --git a/cinder/tests/unit/test_db_api.py b/cinder/tests/unit/test_db_api.py index 17988c5367f..1da26da96df 100644 --- a/cinder/tests/unit/test_db_api.py +++ b/cinder/tests/unit/test_db_api.py @@ -2684,7 +2684,7 @@ class DBAPIBackupTestCase(BaseTest): {'status': fields.BackupStatus.DELETED, 'deleted': True, 'deleted_at': UTC_NOW}, db.backup_destroy(self.ctxt, backup['id'])) - self.assertFalse(db.backup_get_all(self.ctxt)) + self.assertEqual([], db.backup_get_all(self.ctxt)) def test_backup_not_found(self): self.assertRaises(exception.BackupNotFound, db.backup_get, self.ctxt, diff --git a/cinder/tests/unit/test_volume_types.py b/cinder/tests/unit/test_volume_types.py index 2381a8f363c..3c2b518f82c 100644 --- a/cinder/tests/unit/test_volume_types.py +++ b/cinder/tests/unit/test_volume_types.py @@ -94,7 +94,7 @@ class VolumeTypeTestCase(test.TestCase): # on destroying the volume type vol_type_access = db_api._volume_type_access_query( self.ctxt).filter_by(volume_type_id=type_ref['id']).all() - self.assertFalse(vol_type_access) + self.assertEqual([], vol_type_access) @mock.patch('cinder.quota.VolumeTypeQuotaEngine.' 'update_quota_resource') diff --git a/cinder/tests/unit/test_volume_utils.py b/cinder/tests/unit/test_volume_utils.py index 67028a9c796..e4c0f01d4ca 100644 --- a/cinder/tests/unit/test_volume_utils.py +++ b/cinder/tests/unit/test_volume_utils.py @@ -1015,7 +1015,7 @@ class VolumeUtilsTestCase(test.TestCase): @ddt.data({}, None, {'key': 'value'}) def test_is_replicated_no_specs(self, extra_specs): res = volume_utils.is_replicated_spec(extra_specs) - self.assertFalse(res) + self.assertFalse(bool(res)) @ddt.data(' False', ' false', ' f', 'baddata', 'bad data') def test_is_replicated_spec_false(self, enabled): diff --git a/cinder/tests/unit/volume/drivers/dell_emc/vmax/test_vmax.py b/cinder/tests/unit/volume/drivers/dell_emc/vmax/test_vmax.py index af4ac41b2ec..94e90a9c8f0 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/vmax/test_vmax.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/vmax/test_vmax.py @@ -1498,7 +1498,7 @@ class VMAXRestTest(test.TestCase): def test_get_workload_settings_failed(self): wl_settings = self.rest.get_workload_settings( self.data.failed_resource) - self.assertFalse(wl_settings) + self.assertEqual([], wl_settings) def test_get_headroom_capacity(self): ref_headroom = self.data.headroom['headroom'][0]['headroomCapacity'] @@ -1540,7 +1540,7 @@ class VMAXRestTest(test.TestCase): with mock.patch.object(self.rest, 'get_resource', return_value=None): sg_list = self.rest.get_storage_group_list( self.data.array, {}) - self.assertFalse(sg_list) + self.assertEqual([], sg_list) def test_create_storage_group(self): with mock.patch.object(self.rest, 'create_resource'): @@ -1934,7 +1934,7 @@ class VMAXRestTest(test.TestCase): with mock.patch.object(self.rest, 'get_portgroup', return_value=None): port_ids = self.rest.get_port_ids(array, pg_name) - self.assertFalse(port_ids) + self.assertEqual([], port_ids) def test_get_port(self): array = self.data.array @@ -1975,7 +1975,7 @@ class VMAXRestTest(test.TestCase): with mock.patch.object(self.rest, 'get_port', return_value=None): target_wwns = self.rest.get_target_wwns(array, pg_name) - self.assertFalse(target_wwns) + self.assertEqual([], target_wwns) def test_get_initiator_group(self): array = self.data.array @@ -2002,7 +2002,7 @@ class VMAXRestTest(test.TestCase): array = self.data.array with mock.patch.object(self.rest, 'get_resource', return_value={}): init_list = self.rest.get_initiator_list(array) - self.assertFalse(init_list) + self.assertEqual([], init_list) def test_get_in_use_initiator_list_from_array(self): ref_list = self.data.initiator_list[2]['initiatorId'] @@ -2015,7 +2015,7 @@ class VMAXRestTest(test.TestCase): with mock.patch.object(self.rest, 'get_initiator_list', return_value=[]): init_list = self.rest.get_in_use_initiator_list_from_array(array) - self.assertFalse(init_list) + self.assertEqual([], init_list) def test_get_initiator_group_from_initiator(self): initiator = self.data.wwpn1 @@ -2088,12 +2088,12 @@ class VMAXRestTest(test.TestCase): return_value=None): masking_view = self.rest.get_masking_views_by_initiator_group( array, initiatorgroup_name) - self.assertFalse(masking_view) + self.assertEqual([], masking_view) with mock.patch.object(self.rest, 'get_initiator_group', return_value={'name': 'no_mv'}): masking_view = self.rest.get_masking_views_by_initiator_group( array, initiatorgroup_name) - self.assertFalse(masking_view) + self.assertEqual([], masking_view) def test_get_element_from_masking_view(self): array = self.data.array @@ -2145,7 +2145,7 @@ class VMAXRestTest(test.TestCase): return_value=[]): maskingview_list = self.rest.get_common_masking_views( array, portgroup, initiatorgroup) - self.assertFalse(maskingview_list) + self.assertEqual([], maskingview_list) def test_create_masking_view(self): maskingview_name = self.data.masking_view_name_f @@ -3293,7 +3293,7 @@ class VMAXCommonTest(test.TestCase): host = 'DifferentHost' maskingview_list = self.common.get_masking_views_from_volume( array, device_id, host) - self.assertFalse(maskingview_list) + self.assertEqual([], maskingview_list) def test_find_host_lun_id_no_host_check(self): volume = self.data.test_volume @@ -3645,7 +3645,7 @@ class VMAXCommonTest(test.TestCase): return_value=None): target_wwns = self.common.get_target_wwns_from_masking_view( self.data.test_volume, self.data.connector) - self.assertFalse(target_wwns) + self.assertEqual([], target_wwns) def test_get_port_group_from_masking_view(self): array = self.data.array @@ -4022,7 +4022,7 @@ class VMAXCommonTest(test.TestCase): migrate_status = self.common._slo_workload_migration( device_id, volume, host, volume_name, new_type, extra_specs) - self.assertTrue(migrate_status) + self.assertTrue(bool(migrate_status)) self.common._migrate_volume.assert_called_once_with( extra_specs[utils.ARRAY], device_id, extra_specs[utils.SRP], self.data.slo, @@ -4511,7 +4511,7 @@ class VMAXFCTest(test.TestCase): return_value=None): zoning_mappings = self.driver._get_zoning_mappings( self.data.test_volume, self.data.connector) - self.assertFalse(zoning_mappings) + self.assertEqual({}, zoning_mappings) def test_cleanup_zones_other_vols_mapped(self): ref_data = {'driver_volume_type': 'fibre_channel', diff --git a/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py b/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py index 87aabf87cc2..fb9389c7163 100644 --- a/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py +++ b/cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py @@ -1726,7 +1726,7 @@ class HPE3PARBaseDriver(object): retyped = self.driver.retype( self.ctxt, volume, type_ref, None, self.RETYPE_HOST) - self.assertTrue(retyped) + self.assertTrue(retyped[0]) expected = [ mock.call.modifyVolume('osv-0DM4qZEVSKON-AAAAAAAAA', @@ -1796,7 +1796,7 @@ class HPE3PARBaseDriver(object): self.volume_type_replicated, None, self.RETYPE_HOST) - self.assertTrue(retyped) + self.assertTrue(retyped[0]) backend_id = self.replication_targets[0]['backend_id'] expected = [ mock.call.createRemoteCopyGroup( @@ -1899,7 +1899,7 @@ class HPE3PARBaseDriver(object): retyped = self.driver.retype( self.ctxt, volume_1, volume_type, None, self.RETYPE_HOST) - self.assertTrue(retyped) + self.assertTrue(retyped[0]) expected = [ mock.call.stopRemoteCopy(self.RCG_3PAR_NAME), @@ -2000,7 +2000,7 @@ class HPE3PARBaseDriver(object): backend_id = self.replication_targets[0]['backend_id'] retyped = self.driver.retype( self.ctxt, volume_1, volume_type, None, self.RETYPE_HOST) - self.assertTrue(retyped) + self.assertTrue(retyped[0]) expected = [ mock.call.stopRemoteCopy(self.RCG_3PAR_NAME), diff --git a/cinder/tests/unit/volume/drivers/hpe/test_hpelefthand.py b/cinder/tests/unit/volume/drivers/hpe/test_hpelefthand.py index 1921793473c..00e40a33279 100644 --- a/cinder/tests/unit/volume/drivers/hpe/test_hpelefthand.py +++ b/cinder/tests/unit/volume/drivers/hpe/test_hpelefthand.py @@ -3390,7 +3390,7 @@ class TestHPELeftHandISCSIDriver(HPELeftHandBaseDriver, test.TestCase): mock_do_setup.return_value = mock_client mock_replication_client.return_value = mock_replicated_client self.driver.do_setup(None) - self.assertFalse(self.driver._replication_targets) + self.assertListEqual([], self.driver._replication_targets) def test__create_replication_client(self): # set up driver with default config diff --git a/cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py b/cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py index 5c141b8af8f..e26f3013037 100644 --- a/cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py +++ b/cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py @@ -4970,7 +4970,7 @@ class HuaweiFCDriverTestCase(HuaweiTestBase): self.driver.support_func = FAKE_POOLS_SUPPORT_REPORT retype = self.driver.retype(None, self.volume, test_new_type, None, test_host) - self.assertTrue(retype) + self.assertTrue(retype[0]) @ddt.data(FAKE_POOLS_UNSUPPORT_REPORT, FAKE_POOLS_SUPPORT_REPORT) @mock.patch.object(rest_client, 'RestClient') @@ -4984,7 +4984,7 @@ class HuaweiFCDriverTestCase(HuaweiTestBase): self.driver.support_func = pool_data retype = self.driver.retype(None, self.volume, test_new_replication_type, None, test_host) - self.assertTrue(retype) + self.assertTrue(retype[0]) @ddt.data( [ diff --git a/cinder/tests/unit/volume/drivers/ibm/test_ibm_storage.py b/cinder/tests/unit/volume/drivers/ibm/test_ibm_storage.py index 3c4d72f8618..9b24ecd32d4 100644 --- a/cinder/tests/unit/volume/drivers/ibm/test_ibm_storage.py +++ b/cinder/tests/unit/volume/drivers/ibm/test_ibm_storage.py @@ -576,7 +576,7 @@ class IBMStorageVolumeDriverTest(test.TestCase): self.driver.create_volume(volume) ret = self.driver.retype(ctxt, volume, new_type, diff, host) - self.assertTrue(ret) + self.assertTrue(bool(ret)) self.assertEqual('1', volume['easytier']) def test_retype_fail_on_exception(self): diff --git a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py index a88ae54f730..5ffbcaa8f42 100644 --- a/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py +++ b/cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py @@ -913,7 +913,7 @@ class NetAppBlockStorageLibraryTestCase(test.TestCase): self.library.zapi_client.destroy_lun.assert_called_once_with(fake.PATH) block_base.LOG.error.assert_not_called() block_base.LOG.warning.assert_called_once() - self.assertFalse(self.library.lun_table) + self.assertEqual({}, self.library.lun_table) @mock.patch.object(block_base, 'LOG', mock.Mock()) def test_delete_lun_client_exception(self): diff --git a/cinder/tests/unit/volume/drivers/netapp/eseries/test_client.py b/cinder/tests/unit/volume/drivers/netapp/eseries/test_client.py index 0cbcfcae2d6..b7ee6a617d3 100644 --- a/cinder/tests/unit/volume/drivers/netapp/eseries/test_client.py +++ b/cinder/tests/unit/volume/drivers/netapp/eseries/test_client.py @@ -1066,7 +1066,7 @@ class NetAppEseriesClientDriverTestCase(test.TestCase): client.RestClient._init_features(self.my_client) - self.assertTrue(self.my_client.features.AUTOSUPPORT) + self.assertTrue(bool(self.my_client.features.AUTOSUPPORT)) @ddt.data('00.00.00.00', '01.52.9000.2', '01.52.9001.2', '01.51.9000.3', '01.51.9001.3', '01.51.9010.5', '0.53.9000.3', '0.53.9001.4') @@ -1078,7 +1078,7 @@ class NetAppEseriesClientDriverTestCase(test.TestCase): client.RestClient._init_features(self.my_client) - self.assertFalse(self.my_client.features.CHAP_AUTHENTICATION) + self.assertFalse(bool(self.my_client.features.CHAP_AUTHENTICATION)) @ddt.data('01.53.9000.15', '01.53.9000.16', '01.53.8999.15', '01.54.8999.16', '01.54.9010.15', '01.54.9090.15', @@ -1091,7 +1091,7 @@ class NetAppEseriesClientDriverTestCase(test.TestCase): client.RestClient._init_features(self.my_client) - self.assertTrue(self.my_client.features.CHAP_AUTHENTICATION) + self.assertTrue(bool(self.my_client.features.CHAP_AUTHENTICATION)) @ddt.data('00.00.00.00', '01.52.9000.1', '01.52.9001.2', '00.53.9001.3', '01.53.9090.1', '1.53.9010.14', '0.53.9011.15') @@ -1206,7 +1206,7 @@ class TestWebserviceClientTestCase(test.TestCase): self.assertRaises(exception.NetAppDriverException, self.webclient.invoke_service) - self.assertTrue(self.mock_log.exception.find(log_error)) + self.assertTrue(bool(self.mock_log.exception.find(log_error))) def test_invoke_service(self): """Tests if invoke_service evaluates the right response""" diff --git a/cinder/tests/unit/volume/drivers/netapp/eseries/test_driver.py b/cinder/tests/unit/volume/drivers/netapp/eseries/test_driver.py index b9b0f281bd8..b985f45ef2f 100644 --- a/cinder/tests/unit/volume/drivers/netapp/eseries/test_driver.py +++ b/cinder/tests/unit/volume/drivers/netapp/eseries/test_driver.py @@ -150,7 +150,7 @@ class NetAppESeriesDriverTestCase(object): self.library._client.list_storage_system = mock.Mock(wraps=list_system) result = self.library._check_storage_system() - self.assertTrue(result) + self.assertTrue(bool(result)) def test_create_destroy(self): self.mock_object(client.RestClient, 'delete_volume', diff --git a/cinder/tests/unit/volume/drivers/netapp/eseries/test_library.py b/cinder/tests/unit/volume/drivers/netapp/eseries/test_library.py index 52789c9e22c..72a89db10a5 100644 --- a/cinder/tests/unit/volume/drivers/netapp/eseries/test_library.py +++ b/cinder/tests/unit/volume/drivers/netapp/eseries/test_library.py @@ -1378,7 +1378,7 @@ class NetAppEseriesLibraryMultiAttachTestCase(test.TestCase): self.library.do_setup(mock.Mock()) self.assertTrue(mock_check_flags.called) - self.assertFalse(mock_create.call_count) + self.assertEqual(0, mock_create.call_count) def test_do_setup_host_group_does_not_exist(self): mock_check_flags = self.mock_object(na_utils, 'check_flags') @@ -1394,7 +1394,7 @@ class NetAppEseriesLibraryMultiAttachTestCase(test.TestCase): self.library.do_setup(mock.Mock()) self.assertTrue(mock_check_flags.called) - self.assertTrue(mock_get_host_group.call_count) + self.assertLess(0, mock_get_host_group.call_count) def test_create_volume(self): self.library._client.create_volume = mock.Mock( @@ -1403,7 +1403,7 @@ class NetAppEseriesLibraryMultiAttachTestCase(test.TestCase): '_update_consistency_group_members') self.library.create_volume(get_fake_volume()) - self.assertTrue(self.library._client.create_volume.call_count) + self.assertLess(0, self.library._client.create_volume.call_count) update_members.assert_not_called() @@ -1460,7 +1460,7 @@ class NetAppEseriesLibraryMultiAttachTestCase(test.TestCase): self.assertRaises(exception.NetAppDriverException, self.library.create_volume, get_fake_volume()) - self.assertFalse(self.library._client.create_volume.call_count) + self.assertEqual(0, self.library._client.create_volume.call_count) @ddt.data(0, 1, 2) def test_create_snapshot(self, group_count): @@ -2536,7 +2536,7 @@ class NetAppEseriesISCSICHAPAuthenticationTestCase(test.TestCase): eseries_fake.FAKE_TARGET_IQN) self.assertTrue(mock_invoke_generate_random_secret.called) - self.assertTrue(mock_log.warning.find(warn_msg)) + self.assertTrue(bool(mock_log.warning.find(warn_msg))) mock_invoke_set_chap_authentication.assert_called_with( *eseries_fake.FAKE_CLIENT_CHAP_PARAMETERS) self.assertEqual(eseries_fake.FAKE_CHAP_USERNAME, username) diff --git a/cinder/tests/unit/volume/drivers/netapp/test_utils.py b/cinder/tests/unit/volume/drivers/netapp/test_utils.py index 634fa21988c..40c6534a5b1 100644 --- a/cinder/tests/unit/volume/drivers/netapp/test_utils.py +++ b/cinder/tests/unit/volume/drivers/netapp/test_utils.py @@ -832,7 +832,7 @@ class BitSetTestCase(test.TestCase): def test_is_set(self): bitset = na_utils.BitSet(1 << 16) - self.assertTrue(bitset.is_set(16)) + self.assertTrue(bool(bitset.is_set(16))) def test_not_equal(self): set1 = na_utils.BitSet(1 << 15) diff --git a/cinder/tests/unit/volume/drivers/test_prophetstor_dpl.py b/cinder/tests/unit/volume/drivers/test_prophetstor_dpl.py index f452d6d3e23..6c9f1437ee9 100644 --- a/cinder/tests/unit/volume/drivers/test_prophetstor_dpl.py +++ b/cinder/tests/unit/volume/drivers/test_prophetstor_dpl.py @@ -725,7 +725,7 @@ class TestProphetStorDPLDriver(test.TestCase): exception.VolumeBackendAPIException, self.dpldriver.terminate_connection, volume=DATA_IN_VOLUME, connector=DATA_IN_CONNECTOR) - self.assertTrue( + self.assertIsNotNone( re.match(r".*Flexvisor failed", ex.msg)) def test_get_pool_info(self): diff --git a/cinder/tests/unit/volume/drivers/test_pure.py b/cinder/tests/unit/volume/drivers/test_pure.py index 09fd6192968..56d58f76d94 100644 --- a/cinder/tests/unit/volume/drivers/test_pure.py +++ b/cinder/tests/unit/volume/drivers/test_pure.py @@ -623,12 +623,12 @@ class PureBaseVolumeDriverTestCase(PureBaseSharedDriverTestCase): self.assertTrue(result.startswith("really-long-string-that-")) self.assertTrue(result.endswith("-cinder")) self.assertEqual(63, len(result)) - self.assertTrue(pure.GENERATED_NAME.match(result)) + self.assertTrue(bool(pure.GENERATED_NAME.match(result))) result = self.driver._generate_purity_host_name("!@#$%^-invalid&*") self.assertTrue(result.startswith("invalid---")) self.assertTrue(result.endswith("-cinder")) self.assertEqual(49, len(result)) - self.assertTrue(pure.GENERATED_NAME.match(result)) + self.assertIsNotNone(pure.GENERATED_NAME.match(result)) @mock.patch(BASE_DRIVER_OBJ + "._add_to_group_if_needed") @mock.patch(BASE_DRIVER_OBJ + "._is_volume_replicated_type", autospec=True) @@ -2402,7 +2402,7 @@ class PureISCSIDriverTestCase(PureDriverTestCase): actual = self.driver._connect(VOLUME, ISCSI_CONNECTOR) self.assertEqual(expected, actual) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(ISCSI_DRIVER_OBJ + "._get_host", autospec=True) def test_connect_already_connected_list_hosts_empty(self, mock_host): @@ -2416,7 +2416,7 @@ class PureISCSIDriverTestCase(PureDriverTestCase): self.assertRaises(exception.PureDriverException, self.driver._connect, VOLUME, ISCSI_CONNECTOR) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(ISCSI_DRIVER_OBJ + "._get_host", autospec=True) def test_connect_already_connected_list_hosts_exception(self, mock_host): @@ -2433,7 +2433,7 @@ class PureISCSIDriverTestCase(PureDriverTestCase): self.driver._connect, VOLUME, ISCSI_CONNECTOR) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(ISCSI_DRIVER_OBJ + "._get_chap_secret_from_init_data") @mock.patch(ISCSI_DRIVER_OBJ + "._get_host", autospec=True) @@ -2607,7 +2607,7 @@ class PureFCDriverTestCase(PureDriverTestCase): actual = self.driver._connect(VOLUME, FC_CONNECTOR) self.assertEqual(expected, actual) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(FC_DRIVER_OBJ + "._get_host", autospec=True) def test_connect_already_connected_list_hosts_empty(self, mock_host): @@ -2621,7 +2621,7 @@ class PureFCDriverTestCase(PureDriverTestCase): self.assertRaises(exception.PureDriverException, self.driver._connect, VOLUME, FC_CONNECTOR) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(FC_DRIVER_OBJ + "._get_host", autospec=True) def test_connect_already_connected_list_hosts_exception(self, mock_host): @@ -2637,7 +2637,7 @@ class PureFCDriverTestCase(PureDriverTestCase): self.assertRaises(self.purestorage_module.PureHTTPError, self.driver._connect, VOLUME, FC_CONNECTOR) self.assertTrue(self.array.connect_host.called) - self.assertTrue(self.array.list_volume_private_connections) + self.assertTrue(bool(self.array.list_volume_private_connections)) @mock.patch(FC_DRIVER_OBJ + "._get_host", autospec=True) def test_connect_wwn_already_in_use(self, mock_host): diff --git a/cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py b/cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py index 0f95f6ba37d..241a835ad63 100644 --- a/cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py +++ b/cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py @@ -1020,7 +1020,7 @@ class VMwareVcVmdkDriverTestCase(test.TestCase): def test_in_use_with_available_volume(self): volume = self._create_volume_dict() - self.assertFalse(self._driver._in_use(volume)) + self.assertIsNone(self._driver._in_use(volume)) @mock.patch.object(VMDK_DRIVER, '_in_use', return_value=True) def test_retype_with_in_use_volume(self, in_use): diff --git a/cinder/tests/unit/volume/test_image.py b/cinder/tests/unit/volume/test_image.py index 435d707c325..efc84446125 100644 --- a/cinder/tests/unit/volume/test_image.py +++ b/cinder/tests/unit/volume/test_image.py @@ -434,7 +434,7 @@ class ImageVolumeTestCases(base.BaseVolumeTestCase): mock_commit, mock_rollback): vol = tests_utils.create_volume(self.context, **self.volume_params) with mock.patch.object(objects, 'Volume', side_effect=ValueError): - self.assertFalse(self.volume._clone_image_volume( + self.assertIsNone(self.volume._clone_image_volume( self.context, vol, {'id': fake.VOLUME_ID})) mock_reserve.assert_called_once_with(self.context, volumes=1, diff --git a/cinder/tests/unit/volume/test_snapshot.py b/cinder/tests/unit/volume/test_snapshot.py index 4f1d4978c89..e58d3c15d7e 100644 --- a/cinder/tests/unit/volume/test_snapshot.py +++ b/cinder/tests/unit/volume/test_snapshot.py @@ -342,7 +342,7 @@ class SnapshotTestCase(base.BaseVolumeTestCase): # get volume's volume_glance_metadata ctxt = context.get_admin_context() vol_glance_meta = db.volume_glance_metadata_get(ctxt, volume_id) - self.assertTrue(vol_glance_meta) + self.assertTrue(bool(vol_glance_meta)) # create snapshot from bootable volume snap = create_snapshot(volume_id) @@ -351,7 +351,7 @@ class SnapshotTestCase(base.BaseVolumeTestCase): # get snapshot's volume_glance_metadata snap_glance_meta = db.volume_snapshot_glance_metadata_get( ctxt, snap.id) - self.assertTrue(snap_glance_meta) + self.assertTrue(bool(snap_glance_meta)) # ensure that volume's glance metadata is copied # to snapshot's glance metadata @@ -387,7 +387,7 @@ class SnapshotTestCase(base.BaseVolumeTestCase): # get volume's volume_glance_metadata ctxt = context.get_admin_context() vol_glance_meta = db.volume_glance_metadata_get(ctxt, volume_id) - self.assertTrue(vol_glance_meta) + self.assertTrue(bool(vol_glance_meta)) snap = create_snapshot(volume_id) self.assertEqual(36, len(snap.id)) # dynamically-generated UUID self.assertEqual('creating', snap.status)