@@ -1560,8 +1560,20 @@ def test_duplicate_event_source_mappings(
1560
1560
EventSourceArn = event_source_arn ,
1561
1561
)
1562
1562
1563
- @pytest .mark .skip (
1564
- reason = "Flushing based on payload sizes not yet implemented so large payloads are causing issues."
1563
+ @pytest .mark .parametrize (
1564
+ "batch_size" ,
1565
+ [
1566
+ 20 ,
1567
+ 100 ,
1568
+ 1_000 ,
1569
+ pytest .param (
1570
+ 10_000 ,
1571
+ marks = pytest .mark .skip (
1572
+ reason = "Flushing based on payload sizes not yet implemented so large payloads are causing issues."
1573
+
8000
),
1574
+ id = "10000" ,
1575
+ ),
1576
+ ],
1565
1577
)
1566
1578
@markers .aws .only_localstack
1567
1579
def test_sqs_event_source_mapping_batch_size_override (
@@ -1572,9 +1584,10 @@ def test_sqs_event_source_mapping_batch_size_override(
1572
1584
lambda_su_role ,
1573
1585
cleanups ,
1574
1586
aws_client ,
1587
+ batch_size ,
1575
1588
):
1576
1589
function_name = f"lambda_func-{ short_uid ()} "
1577
- queue_name = f"queue-{ short_uid ()} -1 "
1590
+ queue_name = f"queue-{ short_uid ()} "
1578
1591
mapping_uuid = None
1579
1592
1580
1593
create_lambda_function (
@@ -1586,18 +1599,19 @@ def test_sqs_event_source_mapping_batch_size_override(
1586
1599
queue_url = sqs_create_queue (QueueName = queue_name )
1587
1600
queue_arn = sqs_get_queue_arn (queue_url )
1588
1601
1589
- for _ in range (1_00
8000
0 ):
1602
+ # Send messages in batches of 10 i.e batch_size = 10_000 means 1_000 requests of 10 messages each.
1603
+ for _ in range (batch_size // 10 ):
1590
1604
entries = [{"Id" : str (i ), "MessageBody" : json .dumps ({"foo" : "bar" })} for i in range (10 )]
1591
1605
aws_client .sqs .send_message_batch (QueueUrl = queue_url , Entries = entries )
1592
1606
1593
1607
# Wait a few seconds to ensure all messages are loaded in queue
1594
- _await_queue_size (aws_client .sqs , queue_url , 10_000 )
1608
+ _await_queue_size (aws_client .sqs , queue_url , batch_size )
1595
1609
1596
1610
create_event_source_mapping_response = aws_client .lambda_ .create_event_source_mapping (
1597
1611
EventSourceArn = queue_arn ,
1598
1612
FunctionName = function_name ,
1599
1613
MaximumBatchingWindowInSeconds = 10 ,
1600
- BatchSize = 10_000 ,
1614
+ BatchSize = batch_size ,
1601
1615
)
1602
1616
mapping_uuid = create_event_source_mapping_response ["UUID" ]
1603
1617
cleanups .append (lambda : aws_client .lambda_ .delete_event_source_mapping (UUID = mapping_uuid ))
@@ -1612,7 +1626,8 @@ def test_sqs_event_source_mapping_batch_size_override(
1612
1626
logs_client = aws_client .logs ,
1613
1627
)
1614
1628
1615
- assert len (events ) == 10_000
1629
+ assert len (events ) == 1
1630
+ assert len (events [0 ].get ("Records" , [])) == batch_size
1616
1631
1617
1632
rs = aws_client .sqs .receive_message (QueueUrl = queue_url )
1618
1633
assert rs .get ("Messages" , []) == []
0 commit comments