From 2359ee7c8a78c1b3b99063f09de3ae35a0a330c3 Mon Sep 17 00:00:00 2001 From: Dao Cong Tien Date: Tue, 24 Oct 2017 19:54:29 +0700 Subject: [PATCH] Completely remove mox from Cinder unittest This patch removes mox from the remaining unit tests and the base class. Change-Id: I94b32634396ab3acf19a70c6f3601edc67eedab1 --- cinder/test.py | 6 -- .../contrib/test_backup_project_attribute.py | 4 +- .../unit/api/contrib/test_types_manage.py | 70 +++++++++---------- cinder/tests/unit/api/v3/test_snapshots.py | 4 +- .../drivers/nexenta/test_nexenta5_nfs.py | 4 +- 5 files changed, 41 insertions(+), 47 deletions(-) diff --git a/cinder/test.py b/cinder/test.py index 9aa872189d0..1d693d2717b 100644 --- a/cinder/test.py +++ b/cinder/test.py @@ -36,7 +36,6 @@ from oslo_messaging import conffixture as messaging_conffixture from oslo_serialization import jsonutils from oslo_utils import strutils from oslo_utils import timeutils -from oslotest import moxstubout import six import testtools @@ -203,11 +202,6 @@ class TestCase(testtools.TestCase): objects_base.CinderObjectRegistry._registry._obj_classes) self.addCleanup(self._restore_obj_registry) - # emulate some of the mox stuff, we can't use the metaclass - # because it screws with our generators - mox_fixture = self.useFixture(moxstubout.MoxStubout()) - self.mox = mox_fixture.mox - self.stubs = mox_fixture.stubs self.addCleanup(CONF.reset) self.addCleanup(self._common_cleanup) self.injected = [] diff --git a/cinder/tests/unit/api/contrib/test_backup_project_attribute.py b/cinder/tests/unit/api/contrib/test_backup_project_attribute.py index 7e4c46830f6..e48295c5e45 100644 --- a/cinder/tests/unit/api/contrib/test_backup_project_attribute.py +++ b/cinder/tests/unit/api/contrib/test_backup_project_attribute.py @@ -54,8 +54,8 @@ class BackupProjectAttributeTest(test.TestCase): def setUp(self): super(BackupProjectAttributeTest, self).setUp() - self.stubs.Set(backup_api.API, 'get', fake_backup_get) - self.stubs.Set(backup_api.API, 'get_all', fake_backup_get_all) + self.mock_object(backup_api.API, 'get', fake_backup_get) + self.mock_object(backup_api.API, 'get_all', fake_backup_get_all) def _send_backup_request(self, ctx, detail=False, version=mv.BACKUP_PROJECT): diff --git a/cinder/tests/unit/api/contrib/test_types_manage.py b/cinder/tests/unit/api/contrib/test_types_manage.py index c3f31507e3b..9f86debe6ca 100644 --- a/cinder/tests/unit/api/contrib/test_types_manage.py +++ b/cinder/tests/unit/api/contrib/test_types_manage.py @@ -36,7 +36,7 @@ UPDATE_NAME_AFTER_DELETE_TYPE = fake.VOLUME_TYPE5_ID NOT_FOUND_VOLUME_TYPE = fake.WILL_NOT_BE_FOUND_ID -def stub_volume_type(id): +def fake_volume_type(id): specs = {"key1": "value1", "key2": "value2", "key3": "value3", @@ -48,7 +48,7 @@ def stub_volume_type(id): extra_specs=specs) -def stub_volume_type_updated(id, is_public=True): +def fake_volume_type_updated(id, is_public=True): return dict(id=id, name='vol_type_%s_%s' % (six.text_type(id), six.text_type(id)), is_public=is_public, @@ -56,7 +56,7 @@ def stub_volume_type_updated(id, is_public=True): six.text_type(id), six.text_type(id))) -def stub_volume_type_updated_desc_only(id): +def fake_volume_type_updated_desc_only(id): return dict(id=id, name='vol_type_%s' % six.text_type(id), description='vol_type_desc_%s_%s' % ( @@ -66,7 +66,7 @@ def stub_volume_type_updated_desc_only(id): def return_volume_types_get_volume_type(context, id): if id == fake.WILL_NOT_BE_FOUND_ID: raise exception.VolumeTypeNotFound(volume_type_id=id) - return stub_volume_type(id) + return fake_volume_type(id) def return_volume_types_destroy(context, name): @@ -97,13 +97,13 @@ def return_volume_types_create_duplicate_type(context, raise exception.VolumeTypeExists(id=name) -def stub_volume_type_updated_name_only(id): +def fake_volume_type_updated_name_only(id): return dict(id=id, name='vol_type_%s_%s' % (six.text_type(id), six.text_type(id)), description='vol_type_desc_%s' % six.text_type(id)) -def stub_volume_type_updated_name_after_delete(id): +def fake_volume_type_updated_name_after_delete(id): return dict(id=id, name='vol_type_%s' % six.text_type(id), description='vol_type_desc_%s' % six.text_type(id)) @@ -113,24 +113,24 @@ def return_volume_types_get_volume_type_updated(id, is_public=True): if id == NOT_FOUND_VOLUME_TYPE: raise exception.VolumeTypeNotFound(volume_type_id=id) if id == UPDATE_DESC_ONLY_TYPE: - return stub_volume_type_updated_desc_only(id) + return fake_volume_type_updated_desc_only(id) if id == UPDATE_NAME_ONLY_TYPE: - return stub_volume_type_updated_name_only(id) + return fake_volume_type_updated_name_only(id) if id == UPDATE_NAME_AFTER_DELETE_TYPE: - return stub_volume_type_updated_name_after_delete(id) + return fake_volume_type_updated_name_after_delete(id) # anything else - return stub_volume_type_updated(id, is_public=is_public) + return fake_volume_type_updated(id, is_public=is_public) def return_volume_types_get_by_name(context, name): if name == NOT_FOUND_VOLUME_TYPE: raise exception.VolumeTypeNotFoundByName(volume_type_name=name) - return stub_volume_type(name.split("_")[2]) + return fake_volume_type(name.split("_")[2]) def return_volume_types_get_default(): - return stub_volume_type(DEFAULT_VOLUME_TYPE) + return fake_volume_type(DEFAULT_VOLUME_TYPE) def return_volume_types_get_default_not_found(): @@ -146,10 +146,10 @@ class VolumeTypesManageApiTest(test.TestCase): """to reset notifier drivers left over from other api/contrib tests""" def test_volume_types_delete(self): - self.stubs.Set(volume_types, 'get_volume_type', - return_volume_types_get_volume_type) - self.stubs.Set(volume_types, 'destroy', - return_volume_types_destroy) + self.mock_object(volume_types, 'get_volume_type', + return_volume_types_get_volume_type) + self.mock_object(volume_types, 'destroy', + return_volume_types_destroy) req = fakes.HTTPRequest.blank('/v2/%s/types/%s' % ( fake.PROJECT_ID, DEFAULT_VOLUME_TYPE)) @@ -158,10 +158,10 @@ class VolumeTypesManageApiTest(test.TestCase): self.assertEqual(1, len(self.notifier.notifications)) def test_volume_types_delete_not_found(self): - self.stubs.Set(volume_types, 'get_volume_type', - return_volume_types_get_volume_type) - self.stubs.Set(volume_types, 'destroy', - return_volume_types_destroy) + self.mock_object(volume_types, 'get_volume_type', + return_volume_types_get_volume_type) + self.mock_object(volume_types, 'destroy', + return_volume_types_destroy) self.assertEqual(0, len(self.notifier.notifications)) req = fakes.HTTPRequest.blank('/v2/%s/types/%s' % ( @@ -171,10 +171,10 @@ class VolumeTypesManageApiTest(test.TestCase): self.assertEqual(1, len(self.notifier.notifications)) def test_volume_types_with_volumes_destroy(self): - self.stubs.Set(volume_types, 'get_volume_type', - return_volume_types_get_volume_type) - self.stubs.Set(volume_types, 'destroy', - return_volume_types_with_volumes_destroy) + self.mock_object(volume_types, 'get_volume_type', + return_volume_types_get_volume_type) + self.mock_object(volume_types, 'destroy', + return_volume_types_with_volumes_destroy) req = fakes.HTTPRequest.blank('/v2/%s/types/%s' % ( fake.PROJECT_ID, DEFAULT_VOLUME_TYPE)) self.assertEqual(0, len(self.notifier.notifications)) @@ -210,10 +210,10 @@ class VolumeTypesManageApiTest(test.TestCase): req, DEFAULT_VOLUME_TYPE) def test_create(self): - self.stubs.Set(volume_types, 'create', - return_volume_types_create) - self.stubs.Set(volume_types, 'get_volume_type_by_name', - return_volume_types_get_by_name) + self.mock_object(volume_types, 'create', + return_volume_types_create) + self.mock_object(volume_types, 'get_volume_type_by_name', + return_volume_types_get_by_name) body = {"volume_type": {"name": "vol_type_1", "os-volume-type-access:is_public": True, @@ -268,10 +268,10 @@ class VolumeTypesManageApiTest(test.TestCase): self.controller._create, req, body) def test_create_duplicate_type_fail(self): - self.stubs.Set(volume_types, 'create', - return_volume_types_create_duplicate_type) - self.stubs.Set(volume_types, 'get_volume_type_by_name', - return_volume_types_get_by_name) + self.mock_object(volume_types, 'create', + return_volume_types_create_duplicate_type) + self.mock_object(volume_types, 'get_volume_type_by_name', + return_volume_types_get_by_name) body = {"volume_type": {"name": "vol_type_1", "extra_specs": {"key1": "value1"}}} @@ -481,7 +481,7 @@ class VolumeTypesManageApiTest(test.TestCase): def test_update_db_fail(self, mock_update, mock_get_volume_type): mock_update.side_effect = exception.VolumeTypeUpdateFailed( id=DEFAULT_VOLUME_TYPE) - mock_get_volume_type.return_value = stub_volume_type( + mock_get_volume_type.return_value = fake_volume_type( DEFAULT_VOLUME_TYPE) body = {"volume_type": {"name": "vol_type_1_1", @@ -625,8 +625,8 @@ class VolumeTypesManageApiTest(test.TestCase): # delete self.notifier.reset() - self.stubs.Set(volume_types, 'destroy', - return_volume_types_destroy) + self.mock_object(volume_types, 'destroy', + return_volume_types_destroy) req = fakes.HTTPRequest.blank('/v2/%s/types/%s' % ( fake.PROJECT_ID, UPDATE_NAME_AFTER_DELETE_TYPE)) self.assertEqual(0, len(self.notifier.notifications)) diff --git a/cinder/tests/unit/api/v3/test_snapshots.py b/cinder/tests/unit/api/v3/test_snapshots.py index 3a831897858..c18821712bd 100644 --- a/cinder/tests/unit/api/v3/test_snapshots.py +++ b/cinder/tests/unit/api/v3/test_snapshots.py @@ -34,7 +34,7 @@ UUID = '00000000-0000-0000-0000-000000000001' INVALID_UUID = '00000000-0000-0000-0000-000000000002' -def stub_get(self, context, *args, **kwargs): +def fake_get(self, context, *args, **kwargs): vol = {'id': fake.VOLUME_ID, 'size': 100, 'name': 'fake', @@ -64,7 +64,7 @@ def create_snapshot_query_with_metadata(metadata_query_string, class SnapshotApiTest(test.TestCase): def setUp(self): super(SnapshotApiTest, self).setUp() - self.stubs.Set(volume.api.API, 'get', stub_get) + self.mock_object(volume.api.API, 'get', fake_get) self.controller = snapshots.SnapshotsController() self.ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID, True) diff --git a/cinder/tests/unit/volume/drivers/nexenta/test_nexenta5_nfs.py b/cinder/tests/unit/volume/drivers/nexenta/test_nexenta5_nfs.py index 1475adc04c6..10d89cf70b3 100644 --- a/cinder/tests/unit/volume/drivers/nexenta/test_nexenta5_nfs.py +++ b/cinder/tests/unit/volume/drivers/nexenta/test_nexenta5_nfs.py @@ -84,8 +84,8 @@ class TestNexentaNfsDriver(test.TestCase): self.cfg.nas_host = '1.1.1.1' self.cfg.nas_share_path = 'pool/share' self.nef_mock = mock.Mock() - self.stubs.Set(jsonrpc, 'NexentaJSONProxy', - lambda *_, **__: self.nef_mock) + self.mock_object(jsonrpc, 'NexentaJSONProxy', + lambda *_, **__: self.nef_mock) self.drv = nfs.NexentaNfsDriver(configuration=self.cfg) self.drv.db = db self.drv.do_setup(self.ctxt)