Fix database poison warnings, part 3

The following warning appears in the unit test logs a number of times.
This patch fixes the warnings in ComputeAPIAPICellUnitTestCase.

    "UserWarning: This test uses methods that set internal oslo_db
state, but it does not claim to use the database. This will conflict
with the setup of tests that do use the database and cause failures
later."

Note that this warning is only emitted once per unit test worker, so new
offenders will show up in the logs each time you fix a test until they
are all gone.

Change-Id: Idcd733df2aafe809cb89f2a1db5df6ad227dd39c
Related-Bug: #1568414
This commit is contained in:
Diana Clarke 2016-04-17 21:42:01 -04:00
parent 044edbe366
commit 70de70c71c
1 changed files with 30 additions and 17 deletions

View File

@ -13,7 +13,6 @@
"""Unit tests for compute API."""
import copy
import datetime
import iso8601
@ -1133,8 +1132,8 @@ class _ComputeAPIUnitTestMixIn(object):
updates = {'progress': 0, 'task_state': task_states.DELETING}
self.mox.StubOutWithMock(inst, 'save')
self.mox.StubOutWithMock(db,
'block_device_mapping_get_all_by_instance')
self.mox.StubOutWithMock(objects.BlockDeviceMappingList,
'get_by_instance_uuid')
self.mox.StubOutWithMock(db, 'constraint')
self.mox.StubOutWithMock(db, 'instance_destroy')
@ -1147,8 +1146,9 @@ class _ComputeAPIUnitTestMixIn(object):
rpcapi = self.compute_api.compute_rpcapi
self.mox.StubOutWithMock(rpcapi, 'terminate_instance')
db.block_device_mapping_get_all_by_instance(self.context,
inst.uuid).AndReturn([])
objects.BlockDeviceMappingList.get_by_instance_uuid(
self.context, inst.uuid).AndReturn(
objects.BlockDeviceMappingList())
inst.save()
self.compute_api._create_reservations(self.context,
inst, inst.task_state,
@ -1275,15 +1275,16 @@ class _ComputeAPIUnitTestMixIn(object):
def test_delete_soft_rollback(self):
inst = self._create_instance_obj()
self.mox.StubOutWithMock(db,
'block_device_mapping_get_all_by_instance')
self.mox.StubOutWithMock(objects.BlockDeviceMappingList,
'get_by_instance_uuid')
self.mox.StubOutWithMock(inst, 'save')
delete_time = datetime.datetime(1955, 11, 5)
self.useFixture(utils_fixture.TimeFixture(delete_time))
db.block_device_mapping_get_all_by_instance(
self.context, inst.uuid).AndReturn([])
objects.BlockDeviceMappingList.get_by_instance_uuid(
self.context, inst.uuid).AndReturn(
objects.BlockDeviceMappingList())
inst.save().AndRaise(test.TestingException)
self.mox.ReplayAll()
@ -1304,6 +1305,7 @@ class _ComputeAPIUnitTestMixIn(object):
self.mox.StubOutWithMock(compute_utils, 'downsize_quota_delta')
self.mox.StubOutWithMock(compute_utils, 'reserve_quota_delta')
self.mox.StubOutWithMock(fake_mig, 'save')
self.mox.StubOutWithMock(quota.QUOTAS, 'commit')
self.mox.StubOutWithMock(self.compute_api, '_record_action_start')
self.mox.StubOutWithMock(self.compute_api.compute_rpcapi,
'confirm_resize')
@ -1328,7 +1330,8 @@ class _ComputeAPIUnitTestMixIn(object):
fake_mig.save().WithSideEffects(_check_mig)
if self.cell_type:
fake_quotas.commit()
quota.QUOTAS.commit(self.context, resvs, project_id=None,
user_id=None)
self.compute_api._record_action_start(self.context, fake_inst,
'confirmResize')
@ -1366,6 +1369,7 @@ class _ComputeAPIUnitTestMixIn(object):
self.mox.StubOutWithMock(compute_utils, 'reserve_quota_delta')
self.mox.StubOutWithMock(fake_inst, 'save')
self.mox.StubOutWithMock(fake_mig, 'save')
self.mox.StubOutWithMock(quota.QUOTAS, 'commit')
self.mox.StubOutWithMock(self.compute_api, '_record_action_start')
self.mox.StubOutWithMock(self.compute_api.compute_rpcapi,
'revert_resize')
@ -1396,7 +1400,8 @@ class _ComputeAPIUnitTestMixIn(object):
fake_mig.save().WithSideEffects(_check_mig)
if self.cell_type:
fake_quotas.commit()
quota.QUOTAS.commit(self.context, resvs, project_id=None,
user_id=None)
self.compute_api._record_action_start(self.context, fake_inst,
'revertResize')
@ -1426,6 +1431,7 @@ class _ComputeAPIUnitTestMixIn(object):
'reverse_upsize_quota_delta')
self.mox.StubOutWithMock(compute_utils, 'reserve_quota_delta')
self.mox.StubOutWithMock(fake_inst, 'save')
self.mox.StubOutWithMock(quota.QUOTAS, 'rollback')
self.context.elevated().AndReturn(self.context)
objects.Migration.get_by_instance_and_status(
@ -1445,7 +1451,8 @@ class _ComputeAPIUnitTestMixIn(object):
expected={'task_state': [None]})
fake_inst.save(expected_task_state=[None]).AndRaise(exc)
fake_quotas.rollback()
quota.QUOTAS.rollback(self.context, resvs, project_id=None,
user_id=None)
self.mox.ReplayAll()
self.assertRaises(exception.UnexpectedTaskStateError,
@ -1474,6 +1481,7 @@ class _ComputeAPIUnitTestMixIn(object):
self.mox.StubOutWithMock(compute_utils, 'upsize_quota_delta')
self.mox.StubOutWithMock(compute_utils, 'reserve_quota_delta')
self.mox.StubOutWithMock(fake_inst, 'save')
self.mox.StubOutWithMock(quota.QUOTAS, 'commit')
self.mox.StubOutWithMock(self.compute_api, '_record_action_start')
self.mox.StubOutWithMock(self.compute_api.compute_task_api,
'resize_instance')
@ -1524,7 +1532,9 @@ class _ComputeAPIUnitTestMixIn(object):
else:
expected_reservations = []
if self.cell_type == 'api':
fake_quotas.commit()
if flavor_id_passed:
quota.QUOTAS.commit(self.context, resvs, project_id=None,
user_id=None)
expected_reservations = []
mig = objects.Migration()
@ -2272,8 +2282,10 @@ class _ComputeAPIUnitTestMixIn(object):
quiesced = [False, False]
quiesce_expected = not quiesce_fails and vm_state == vm_states.ACTIVE
def fake_get_all_by_instance(context, instance, use_slave=False):
return copy.deepcopy(instance_bdms)
@classmethod
def fake_bdm_list_get_by_instance_uuid(cls, context, instance_uuid):
return obj_base.obj_make_list(context, cls(),
objects.BlockDeviceMapping, instance_bdms)
def fake_image_create(context, image_meta, data=None):
self.assertThat(image_meta, matchers.DictMatches(expect_meta))
@ -2293,8 +2305,9 @@ class _ComputeAPIUnitTestMixIn(object):
def fake_unquiesce_instance(context, instance, mapping=None):
quiesced[1] = True
self.stub_out('nova.db.block_device_mapping_get_all_by_instance',
fake_get_all_by_instance)
self.stub_out('nova.objects.BlockDeviceMappingList'
'.get_by_instance_uuid',
fake_bdm_list_get_by_instance_uuid)
self.stubs.Set(self.compute_api.image_api, 'create',
fake_image_create)
self.stubs.Set(self.compute_api.volume_api, 'get',