Skip to content

Commit f647f06

Browse files
committed
make all reads in tests strongly consistent
there were some issues with integration tests running too quickly and the eventually consistent reads not catching the changes
1 parent 6515bbf commit f647f06

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

test/functional/functional_test_utils.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ def cycle_batch_writer_check(raw_table, encrypted_table, initial_actions, initia
490490

491491
ddb_keys = [key for key in TEST_BATCH_KEYS]
492492
encrypted_items = [
493-
raw_table.get_item(Key=key)['Item']
493+
raw_table.get_item(Key=key, ConsistentRead=True)['Item']
494494
for key in ddb_keys
495495
]
496496
check_many_encrypted_items(
@@ -501,7 +501,7 @@ def cycle_batch_writer_check(raw_table, encrypted_table, initial_actions, initia
501501
)
502502

503503
decrypted_result = [
504-
encrypted_table.get_item(Key=key)['Item']
504+
encrypted_table.get_item(Key=key, ConsistentRead=True)['Item']
505505
for key in ddb_keys
506506
]
507507
assert_equal_lists_of_items(
@@ -549,10 +549,10 @@ def table_cycle_check(materials_provider, initial_actions, initial_item, table_n
549549

550550
_put_result = e_table.put_item(Item=item) # noqa
551551

552-
encrypted_result = table.get_item(Key=TEST_KEY)
552+
encrypted_result = table.get_item(Key=TEST_KEY, ConsistentRead=True)
553553
check_encrypted_item(item, encrypted_result['Item'], check_attribute_actions)
554554

555-
decrypted_result = e_table.get_item(Key=TEST_KEY)
555+
decrypted_result = e_table.get_item(Key=TEST_KEY, ConsistentRead=True)
556556
assert decrypted_result['Item'] == item
557557

558558
e_table.delete_item(Key=TEST_KEY)
@@ -593,8 +593,8 @@ def resource_cycle_batch_items_check(materials_provider, initial_actions, initia
593593
table_name=table_name
594594
)
595595

596-
raw_scan_result = resource.Table(table_name).scan()
597-
e_scan_result = e_resource.Table(table_name).scan()
596+
raw_scan_result = resource.Table(table_name).scan(ConsistentRead=True)
597+
e_scan_result = e_resource.Table(table_name).scan(ConsistentRead=True)
598598
assert not raw_scan_result['Items']
599599
assert not e_scan_result['Items']
600600

@@ -624,13 +624,15 @@ def client_cycle_single_item_check(materials_provider, initial_actions, initial_
624624

625625
encrypted_result = client.get_item(
626626
TableName=table_name,
627-
Key=ddb_key
627+
Key=ddb_key,
628+
ConsistentRead=True
628629
)
629630
check_encrypted_item(item, ddb_to_dict(encrypted_result['Item']), check_attribute_actions)
630631

631632
decrypted_result = e_client.get_item(
632633
TableName=table_name,
633-
Key=ddb_key
634+
Key=ddb_key,
635+
ConsistentRead=True
634636
)
635637
assert ddb_to_dict(decrypted_result['Item']) == item
636638

@@ -663,8 +665,8 @@ def client_cycle_batch_items_check(materials_provider, initial_actions, initial_
663665
table_name=table_name
664666
)
665667

666-
raw_scan_result = client.scan(TableName=table_name)
667-
e_scan_result = e_client.scan(TableName=table_name)
668+
raw_scan_result = client.scan(TableName=table_name, ConsistentRead=True)
669+
e_scan_result = e_client.scan(TableName=table_name, ConsistentRead=True)
668670
assert not raw_scan_result['Items']
669671
assert not e_scan_result['Items']
670672

@@ -699,12 +701,12 @@ def client_cycle_batch_items_check_paginators(
699701

700702
encrypted_items = []
701703
raw_paginator = client.get_paginator('scan')
702-
for page in raw_paginator.paginate(TableName=table_name):
704+
for page in raw_paginator.paginate(TableName=table_name, ConsistentRead=True):
703705
encrypted_items.extend(page['Items'])
704706

705707
decrypted_items = []
706708
encrypted_paginator = e_client.get_paginator('scan')
707-
for page in encrypted_paginator.paginate(TableName=table_name):
709+
for page in encrypted_paginator.paginate(TableName=table_name, ConsistentRead=True):
708710
decrypted_items.extend(page['Items'])
709711

710712
print(encrypted_items)
@@ -725,7 +727,7 @@ def client_cycle_batch_items_check_paginators(
725727
table_name=table_name
726728
)
727729

728-
raw_scan_result = client.scan(TableName=table_name)
729-
e_scan_result = e_client.scan(TableName=table_name)
730+
raw_scan_result = client.scan(TableName=table_name, ConsistentRead=True)
731+
e_scan_result = e_client.scan(TableName=table_name, ConsistentRead=True)
730732
assert not raw_scan_result['Items']
731733
assert not e_scan_result['Items']

0 commit comments

Comments
 (0)