Fix nondeterministic test ordering bug.
Iterates the dictionary in the same order when building the mox as the code uses when performing the operations. Also changed the UUID's to make them a little more distquishing. Fix a unit test bug. Fix was in rackerlabs repo, but somehow never made it to stackforge. Change-Id: I6bd19b9ee9ce91e6b68180efede1c16b29c4b7ff
This commit is contained in:
parent
6cc503bc44
commit
53e8d51bf1
@ -286,9 +286,9 @@ def _ping_processing_with_service(pings, service, version=1):
|
||||
with transaction.commit_on_success():
|
||||
for msg_id, status_info in pings.items():
|
||||
try:
|
||||
exists = _find_exists_with_message_id(msg_id, exists_model,
|
||||
rexists = _find_exists_with_message_id(msg_id, exists_model,
|
||||
service)
|
||||
for exists in exists:
|
||||
for exists in rexists:
|
||||
if version == 1:
|
||||
exists.send_status = status_info
|
||||
elif version == 2:
|
||||
|
@ -506,7 +506,7 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
fake_request.body = body
|
||||
|
||||
info_values = self.mox.CreateMockAnything()
|
||||
models.TenantInfo.objects.filter(tenant__in=['test_old', 'test_new']).AndReturn(info_values)
|
||||
models.TenantInfo.objects.filter(tenant__in=mox.SameElementsAs(['test_old', 'test_new'])).AndReturn(info_values)
|
||||
info_values.values('tenant').AndReturn([dict(tenant='test_old')])
|
||||
models.TenantInfo.objects.bulk_create(mox.And(
|
||||
Length(1), mox.IsA(list), mox.In(mox.And(
|
||||
@ -517,7 +517,7 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
))))
|
||||
|
||||
fake_tenants = self.mox.CreateMockAnything()
|
||||
models.TenantInfo.objects.filter(tenant__in=['test_old', 'test_new'])\
|
||||
models.TenantInfo.objects.filter(tenant__in=mox.SameElementsAs(['test_old', 'test_new']))\
|
||||
.AndReturn(fake_tenants)
|
||||
fake_tenants.update(last_updated=TEST_DATE)
|
||||
fake_tenants.__iter__().AndReturn(iter(TEST_OBJECTS))
|
||||
@ -679,22 +679,18 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
trans_obj = self.mox.CreateMockAnything()
|
||||
transaction.commit_on_success().AndReturn(trans_obj)
|
||||
trans_obj.__enter__()
|
||||
results1 = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results1)
|
||||
exists1 = self.mox.CreateMockAnything()
|
||||
results1.get(message_id=MESSAGE_ID_2).AndReturn(exists1)
|
||||
exists1.save()
|
||||
results2 = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results2)
|
||||
exists2 = self.mox.CreateMockAnything()
|
||||
results2.get(message_id=MESSAGE_ID_1).AndReturn(exists2)
|
||||
exists2.save()
|
||||
for uuid, code in messages.items():
|
||||
results = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results)
|
||||
exists = self.mox.CreateMockAnything()
|
||||
results.get(message_id=uuid).AndReturn(exists)
|
||||
exists.save()
|
||||
trans_obj.__exit__(None, None, None)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
resp = dbapi.exists_send_status(fake_request, 'batch')
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
exists1.send_status = 200
|
||||
exists.send_status = 200
|
||||
self.mox.VerifyAll()
|
||||
|
||||
def test_send_status_batch_accepts_post_for_nova_and_glance_when_version_is_1(
|
||||
@ -719,25 +715,20 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
results1.get(message_id=MESSAGE_ID_3).AndReturn(exists1)
|
||||
exists1.save()
|
||||
trans_obj.__exit__(None, None, None)
|
||||
|
||||
trans_obj = self.mox.CreateMockAnything()
|
||||
transaction.commit_on_success().AndReturn(trans_obj)
|
||||
trans_obj.__enter__()
|
||||
results1 = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(results1)
|
||||
exists1A = self.mox.CreateMockAnything()
|
||||
exists1B = self.mox.CreateMockAnything()
|
||||
results1.filter(message_id=MESSAGE_ID_2).AndReturn(
|
||||
[exists1A, exists1B])
|
||||
exists1A.save()
|
||||
exists1B.save()
|
||||
results2 = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(results2)
|
||||
exists2A = self.mox.CreateMockAnything()
|
||||
exists2B = self.mox.CreateMockAnything()
|
||||
results2.filter(message_id=MESSAGE_ID_1).AndReturn(
|
||||
[exists2A, exists2B])
|
||||
exists2A.save()
|
||||
exists2B.save()
|
||||
|
||||
for uuid, code in messages['glance'].items():
|
||||
query = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(query)
|
||||
existsA = self.mox.CreateMockAnything()
|
||||
existsB = self.mox.CreateMockAnything()
|
||||
query.filter(message_id=uuid).AndReturn([existsA, existsB])
|
||||
existsA.save()
|
||||
existsB.save()
|
||||
|
||||
trans_obj.__exit__(None, None, None)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -757,16 +748,12 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
trans_obj = self.mox.CreateMockAnything()
|
||||
transaction.commit_on_success().AndReturn(trans_obj)
|
||||
trans_obj.__enter__()
|
||||
results1 = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results1)
|
||||
exists1 = self.mox.CreateMockAnything()
|
||||
results1.get(message_id=MESSAGE_ID_2).AndReturn(exists1)
|
||||
exists1.save()
|
||||
results2 = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results2)
|
||||
exists2 = self.mox.CreateMockAnything()
|
||||
results2.get(message_id=MESSAGE_ID_1).AndReturn(exists2)
|
||||
exists2.save()
|
||||
for uuid, code in messages.items():
|
||||
results = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results)
|
||||
exists = self.mox.CreateMockAnything()
|
||||
results.get(message_id=uuid).AndReturn(exists)
|
||||
exists.save()
|
||||
trans_obj.__exit__(None, None, None)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -799,39 +786,29 @@ class DBAPITestCase(StacktachBaseTestCase):
|
||||
body = json.dumps(body_dict)
|
||||
fake_request.body = body
|
||||
self.mox.StubOutWithMock(transaction, 'commit_on_success')
|
||||
|
||||
trans_obj = self.mox.CreateMockAnything()
|
||||
transaction.commit_on_success().AndReturn(trans_obj)
|
||||
trans_obj.__enter__()
|
||||
results1 = self.mox.CreateMockAnything()
|
||||
results2 = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results1)
|
||||
exists1 = self.mox.CreateMockAnything()
|
||||
results1.get(message_id=MESSAGE_ID_4).AndReturn(exists1)
|
||||
exists1.save()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results2)
|
||||
exists2 = self.mox.CreateMockAnything()
|
||||
results2.get(message_id=MESSAGE_ID_3).AndReturn(exists2)
|
||||
exists2.save()
|
||||
for uuid, code in messages['nova'].items():
|
||||
results = self.mox.CreateMockAnything()
|
||||
models.InstanceExists.objects.select_for_update().AndReturn(results)
|
||||
exists = self.mox.CreateMockAnything()
|
||||
results.get(message_id=uuid).AndReturn(exists)
|
||||
exists.save()
|
||||
trans_obj.__exit__(None, None, None)
|
||||
|
||||
trans_obj = self.mox.CreateMockAnything()
|
||||
transaction.commit_on_success().AndReturn(trans_obj)
|
||||
trans_obj.__enter__()
|
||||
results1 = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(results1)
|
||||
exists1A = self.mox.CreateMockAnything()
|
||||
exists1B = self.mox.CreateMockAnything()
|
||||
results1.filter(message_id=MESSAGE_ID_2).AndReturn(
|
||||
[exists1A, exists1B])
|
||||
exists1A.save()
|
||||
exists1B.save()
|
||||
results2 = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(results2)
|
||||
exists2A = self.mox.CreateMockAnything()
|
||||
exists2B = self.mox.CreateMockAnything()
|
||||
results2.filter(message_id=MESSAGE_ID_1).AndReturn(
|
||||
[exists2A, exists2B])
|
||||
exists2A.save()
|
||||
exists2B.save()
|
||||
for uuid, code in messages['glance'].items():
|
||||
results = self.mox.CreateMockAnything()
|
||||
models.ImageExists.objects.select_for_update().AndReturn(results)
|
||||
existsA = self.mox.CreateMockAnything()
|
||||
existsB = self.mox.CreateMockAnything()
|
||||
results.filter(message_id=uuid).AndReturn([existsA, existsB])
|
||||
existsA.save()
|
||||
existsB.save()
|
||||
trans_obj.__exit__(None, None, None)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
|
@ -284,8 +284,8 @@ class GlanceVerifierTestCase(StacktachBaseTestCase):
|
||||
self.assertEqual(nf.field_name, 'image_size')
|
||||
self.assertEqual(
|
||||
nf.reason, "Failed at 2014-01-02 03:04:05 UTC for "
|
||||
"12345678-6352-4dbc-8271-96cc54bf14cd: image_size field was "
|
||||
"null for exist id 23")
|
||||
"%s: image_size field was "
|
||||
"null for exist id 23" % IMAGE_UUID_1)
|
||||
self.mox.VerifyAll()
|
||||
|
||||
def test_should_verify_that_created_at_in_exist_is_not_null(self):
|
||||
@ -305,8 +305,8 @@ class GlanceVerifierTestCase(StacktachBaseTestCase):
|
||||
self.assertEqual(exception.field_name, 'created_at')
|
||||
self.assertEqual(exception.reason,
|
||||
"Failed at 2014-01-01 01:02:03 UTC for "
|
||||
"12345678-6352-4dbc-8271-96cc54bf14cd: created_at "
|
||||
"field was null for exist id 23")
|
||||
"%s: created_at "
|
||||
"field was null for exist id 23" % IMAGE_UUID_1)
|
||||
self.mox.VerifyAll()
|
||||
|
||||
def test_should_verify_that_uuid_in_exist_is_not_null(self):
|
||||
@ -348,8 +348,8 @@ class GlanceVerifierTestCase(StacktachBaseTestCase):
|
||||
self.assertEqual(
|
||||
nf.reason,
|
||||
"Failed at 2014-01-01 01:02:03 UTC for "
|
||||
"12345678-6352-4dbc-8271-96cc54bf14cd: owner field was null "
|
||||
"for exist id 23")
|
||||
"%s: owner field was null "
|
||||
"for exist id 23" % IMAGE_UUID_1)
|
||||
self.mox.VerifyAll()
|
||||
|
||||
def test_should_verify_that_uuid_value_is_uuid_like(self):
|
||||
@ -536,14 +536,12 @@ class GlanceVerifierTestCase(StacktachBaseTestCase):
|
||||
exist3.save()
|
||||
exist4.save()
|
||||
exist5.save()
|
||||
for value in sent_results.values():
|
||||
self.pool.apply_async(glance_verifier._verify,
|
||||
args=([exist4],), callback=None)
|
||||
self.pool.apply_async(glance_verifier._verify, args=([exist5],),
|
||||
callback=None)
|
||||
args=(value,), callback=None)
|
||||
for value in results.values():
|
||||
self.pool.apply_async(glance_verifier._verify,
|
||||
args=([exist1, exist2],), callback=None)
|
||||
self.pool.apply_async(glance_verifier._verify, args=([exist3],),
|
||||
callback=None)
|
||||
args=(value,), callback=None)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.glance_verifier.verify_for_range(when_max)
|
||||
@ -579,9 +577,8 @@ class GlanceVerifierTestCase(StacktachBaseTestCase):
|
||||
exist1.save()
|
||||
exist2.save()
|
||||
exist3.save()
|
||||
self.pool.apply_async(glance_verifier._verify, args=([exist1, exist2],),
|
||||
callback=callback)
|
||||
self.pool.apply_async(glance_verifier._verify, args=([exist3],),
|
||||
for value in results.values():
|
||||
self.pool.apply_async(glance_verifier._verify, args=(value,),
|
||||
callback=callback)
|
||||
self.mox.ReplayAll()
|
||||
self.glance_verifier.verify_for_range(
|
||||
|
@ -22,10 +22,10 @@ TENANT_ID_2 = 'testtenantid2'
|
||||
|
||||
from stacktach import datetime_to_decimal as dt
|
||||
|
||||
IMAGE_UUID_1 = "12345678-6352-4dbc-8271-96cc54bf14cd"
|
||||
IMAGE_UUID_1 = "1111aaaa-6352-4dbc-8271-96cc54bf14cd"
|
||||
|
||||
INSTANCE_ID_1 = "08f685d9-6352-4dbc-8271-96cc54bf14cd"
|
||||
INSTANCE_ID_2 = "515adf96-41d3-b86d-5467-e584edc61dab"
|
||||
INSTANCE_ID_1 = "2222bbbb-6352-4dbc-8271-96cc54bf14cd"
|
||||
INSTANCE_ID_2 = "3333cccc-41d3-b86d-5467-e584edc61dab"
|
||||
|
||||
INSTANCE_FLAVOR_ID_1 = "1"
|
||||
INSTANCE_FLAVOR_ID_2 = "performance2-120"
|
||||
@ -36,16 +36,16 @@ INSTANCE_TYPE_ID_2 = '54321'
|
||||
DUMMY_TIME = datetime.datetime.utcnow()
|
||||
DECIMAL_DUMMY_TIME = dt.dt_to_decimal(DUMMY_TIME)
|
||||
|
||||
MESSAGE_ID_1 = "7f28f81b-29a2-43f2-9ba1-ccb3e53ab6c8"
|
||||
MESSAGE_ID_2 = "4d596126-0f04-4329-865f-7b9a7bd69bcf"
|
||||
MESSAGE_ID_3 = "4d596126-0f04-4329-865f-797387adf45c"
|
||||
MESSAGE_ID_4 = "4d596126-0f04-4329-865f-797387adf45e"
|
||||
MESSAGE_ID_1 = "4444dddd-29a2-43f2-9ba1-ccb3e53ab6c8"
|
||||
MESSAGE_ID_2 = "5555eeee-0f04-4329-865f-7b9a7bd69bcf"
|
||||
MESSAGE_ID_3 = "6666ffff-0f04-4329-865f-797387adf45c"
|
||||
MESSAGE_ID_4 = "7777aaaa-0f04-4329-865f-797387adf45e"
|
||||
|
||||
BANDWIDTH_PUBLIC_OUTBOUND = 1697240969
|
||||
|
||||
REQUEST_ID_1 = 'req-611a4d70-9e47-4b27-a95e-27996cc40c06'
|
||||
REQUEST_ID_2 = 'req-a951dec0-52ee-425d-9f56-d68bd1ad00ac'
|
||||
REQUEST_ID_3 = 'req-039a33f7-5849-4406-8166-4db8cd085f52'
|
||||
REQUEST_ID_1 = 'req-8888bbbb-9e47-4b27-a95e-27996cc40c06'
|
||||
REQUEST_ID_2 = 'req-9999cccc-52ee-425d-9f56-d68bd1ad00ac'
|
||||
REQUEST_ID_3 = 'req-0000dddd-5849-4406-8166-4db8cd085f52'
|
||||
|
||||
RAX_OPTIONS_1 = '1'
|
||||
RAX_OPTIONS_2 = '2'
|
||||
|
Loading…
x
Reference in New Issue
Block a user