@@ -1951,6 +1951,110 @@ def test_delete_message_batch_invalid_msg_id(
1951
1951
aws_client .sqs .delete_message_batch (QueueUrl = queue_url , Entries = delete_entries )
1952
1952
snapshot .match ("error_response" , e .value .response )
1953
1953
1954
+ @pytest .mark .aws_validated
1955
+ def test_delete_message_batch_with_too_large_batch (
1956
+ self , sqs_create_queue , snapshot , aws_client
1957
+ ):
1958
+ self ._add_error_detail_transformer (snapshot )
1959
+
1960
+ queue_name = f"queue-{ short_uid ()} "
1961
+ queue_url = sqs_create_queue (QueueName = queue_name )
1962
+
1963
+ message_batch = [
1964
+ {
1965
+ "Id" : f"message-{ i } " ,
1966
+ "MessageBody" : f"messageBody-{ i } " ,
1967
+ }
1968
+ for i in range (MAX_NUMBER_OF_MESSAGES )
1969
+ ]
1970
+
1971
+ result_send_batch = aws_client .sqs .send_message_batch (
1972
+ QueueUrl = queue_url , Entries = message_batch
1973
+ )
1974
+ successful = result_send_batch ["Successful" ]
1975
+ assert len (successful ) == len (message_batch )
1976
+
1977
+ result_send_batch = aws_client .sqs .send_message_batch (
1978
+ QueueUrl = queue_url , Entries = message_batch
1979
+ )
1980
+ successful = result_send_batch ["Successful" ]
1981
+ assert len (successful ) == len (message_batch )
1982
+
1983
+ result_recv = []
1984
+ target_size = 2 * MAX_NUMBER_OF_MESSAGES
1985
+
1986
+ def _receive_all_messages ():
1987
+ result_recv .extend (
1988
+ aws_client .sqs .receive_message (
1989
+ QueueUrl = queue_url ,
1990
+ MaxNumberOfMessages = min (MAX_NUMBER_OF_MESSAGES , target_size - len (result_recv )),
1991
+ )["Messages" ]
1992
+ )
1993
+ assert len (result_recv ) == target_size
1994
+
1995
+ retry (_receive_all_messages , retries = 7 , sleep = 0.5 )
1996
+
1997
+ delete_entries = [
1998
+ {"Id" : str (i ), "ReceiptHandle" : msg ["ReceiptHandle" ]}
1999
+ for i , msg in enumerate (result_recv )
2000
+ ]
2001
+ with pytest .raises (ClientError ) as e :
2002
+ aws_client .sqs .delete_message_batch (QueueUrl = queue_url , Entries = delete_entries )
2003
+ snapshot .match ("error_response" , e .value .response )
2004
+
2005
+ @pytest .mark .aws_validated
2006
+ def test_change_message_visibility_batch_with_too_large_batch (
2007
+ self , sqs_create_queue , snapshot , aws_client
2008
+ ):
2009
+ self ._add_error_detail_transformer (snapshot )
2010
+
2011
+ queue_name = f"queue-{ short_uid ()} "
2012
+ queue_url = sqs_create_queue (QueueName = queue_name )
2013
+
2014
+ message_batch = [
2015
+ {
2016
+ "Id" : f"message-{ i } " ,
2017
+ "MessageBody" : f"messageBody-{ i } " ,
2018
+ }
2019
+ for i in range (MAX_NUMBER_OF_MESSAGES )
2020
+ ]
2021
+
2022
+ result_send_batch = aws_client .sqs .send_message_batch (
2023
+ QueueUrl = queue_url , Entries = message_batch
2024
+ )
2025
+ successful = result_send_batch ["Successful" ]
2026
+ assert len (successful ) == len (message_batch )
2027
+
2028
+ result_send_batch = aws_client .sqs .send_message_batch (
2029
+ QueueUrl = queue_url , Entries = message_batch
2030
+ )
2031
+ successful = result_send_batch ["Successful" ]
2032
+ assert len (successful ) == len (message_batch )
2033
+
2034
+ result_recv = []
2035
+ target_size = 2 * MAX_NUMBER_OF_MESSAGES
2036
+
2037
+ def _receive_all_messages ():
2038
+ result_recv .extend (
2039
+ aws_client .sqs .receive_message (
2040
+ QueueUrl = queue_url ,
2041
+ MaxNumberOfMessages = min (MAX_NUMBER_OF_MESSAGES , target_size - len (result_recv )),
2042
+ )["Messages" ]
2043
+ )
2044
+ assert len (result_recv ) == target_size
2045
+
2046
+ retry (_receive_all_messages , retries = 7 , sleep = 0.5 )
2047
+
2048
+ change_visibility_entries = [
2049
+ {"Id" : str (i ), "ReceiptHandle" : msg ["ReceiptHandle" ], "VisibilityTimeout" : 123 }
2050
+ for i , msg in enumerate (result_recv )
2051
+ ]
2052
+ with pytest .raises (ClientError ) as e :
2053
+ aws_client .sqs .change_message_visibility_batch (
2054
+ QueueUrl = queue_url , Entries = change_visibility_entries
2055
+ )
2056
+ snapshot .match ("error_response" , e .value .response )
2057
+
1954
2058
@pytest .mark .aws_validated
1955
2059
def test_create_and_send_to_fifo_queue (self , sqs_create_queue , aws_client ):
1956
2060
# Old name: test_create_fifo_queue
0 commit comments