diff --git a/tests/aws/services/dynamodb/test_dynamodb.py b/tests/aws/services/dynamodb/test_dynamodb.py index 08eee7c6d1b6f..28e31277976a0 100644 --- a/tests/aws/services/dynamodb/test_dynamodb.py +++ b/tests/aws/services/dynamodb/test_dynamodb.py @@ -1451,7 +1451,7 @@ def test_dynamodb_stream_records_with_update_item( response = aws_client.dynamodbstreams.get_shard_iterator( StreamArn=stream_arn, ShardId=shard_id, - ShardIteratorType="LATEST", + ShardIteratorType="TRIM_HORIZON", ) snapshot.match("get-shard-iterator", response) assert response["ResponseMetadata"]["HTTPStatusCode"] == 200 @@ -1502,19 +1502,21 @@ def _get_item(): ":v2": {"S": "value3"}, }, ) - records = [] def _get_records_amount(record_amount: int): nonlocal shard_iterator - if len(records) < record_amount: - _resp = aws_client.dynamodbstreams.get_records(ShardIterator=shard_iterator) - records.extend(_resp["Records"]) - if next_shard_iterator := _resp.get("NextShardIterator"): - shard_iterator = next_shard_iterator - assert len(records) >= record_amount + all_records = [] + while shard_iterator is not None: + res = aws_client.dynamodbstreams.get_records(ShardIterator=shard_iterator) + shard_iterator = res["NextShardIterator"] + all_records.extend(res["Records"]) + if len(all_records) >= record_amount: + break + + return all_records - retry(lambda: _get_records_amount(2), sleep=1, retries=3) + records = retry(lambda: _get_records_amount(2), sleep=1, retries=3) snapshot.match("get-records", {"Records": records}) assert len(records) == 2 diff --git a/tests/aws/services/dynamodb/test_dynamodb.snapshot.json b/tests/aws/services/dynamodb/test_dynamodb.snapshot.json index 39bbf549fda6e..347dcd539b67c 100644 --- a/tests/aws/services/dynamodb/test_dynamodb.snapshot.json +++ b/tests/aws/services/dynamodb/test_dynamodb.snapshot.json @@ -1267,7 +1267,7 @@ } }, "tests/aws/services/dynamodb/test_dynamodb.py::TestDynamoDB::test_dynamodb_stream_records_with_update_item": { - "recorded-date": "06-06-2024, 13:02:16", + "recorded-date": "26-06-2024, 14:28:27", "recorded-content": { "create-table": { "TableDescription": { diff --git a/tests/aws/services/dynamodb/test_dynamodb.validation.json b/tests/aws/services/dynamodb/test_dynamodb.validation.json index 868b50874b67b..ef5f8c6df8514 100644 --- a/tests/aws/services/dynamodb/test_dynamodb.validation.json +++ b/tests/aws/services/dynamodb/test_dynamodb.validation.json @@ -45,7 +45,7 @@ "last_validated_date": "2023-08-23T14:33:43+00:00" }, "tests/aws/services/dynamodb/test_dynamodb.py::TestDynamoDB::test_dynamodb_stream_records_with_update_item": { - "last_validated_date": "2024-06-06T13:02:16+00:00" + "last_validated_date": "2024-06-26T14:28:26+00:00" }, "tests/aws/services/dynamodb/test_dynamodb.py::TestDynamoDB::test_dynamodb_stream_stream_view_type": { "last_validated_date": "2024-05-31T14:49:56+00:00"