@@ -15,19 +15,17 @@ def replay_messages(mocker):
1515 mocker .patch .object (boto3 , 'resource' )
1616 boto3 .client .return_value = mock_sqs_client
1717 boto3 .resource .return_value = mock_sqs_client
18- mock_queue = MagicMock ()
19- mock_sqs_client .Topic .return_value = mock_queue
2018 import replay_messages
2119 return replay_messages
2220
2321
2422def test_handler_no_records (mocker , replay_messages ):
2523 replay_messages .handler ({}, None )
26- replay_messages .QUEUE .send_message .assert_not_called ()
24+ replay_messages .QUEUE .send_messages .assert_not_called ()
2725
2826
2927def test_handler_success (mocker , replay_messages ):
30- replay_messages .QUEUE .send_message .return_value = {}
28+ replay_messages .QUEUE .send_messages .return_value = {}
3129
3230 event = {
3331 'Records' : [
@@ -69,29 +67,50 @@ def test_handler_success(mocker, replay_messages):
6967 }
7068 replay_messages .handler (event , None )
7169
72- replay_messages .QUEUE .send_message .assert_any_call (
73- MessageBody = 'foo' ,
74- MessageAttributes = {
75- 'fooAttr1' : {
76- 'DataType' : 'String' ,
77- 'StringValue' : 'fooAttr1Value'
78- },
79- 'fooAttr2' : {
80- 'DataType' : 'String' ,
81- 'StringValue' : 'fooAttr2Value'
70+ expected_entries = [
71+ {
72+ 'Id' : '0' ,
73+ 'MessageBody' : 'foo' ,
74+ 'MessageAttributes' : {
75+ 'fooAttr1' : {
76+ 'DataType' : 'String' ,
77+ 'StringValue' : 'fooAttr1Value'
78+ },
79+ 'fooAttr2' : {
80+ 'DataType' : 'String' ,
81+ 'StringValue' : 'fooAttr2Value'
82+ }
8283 }
83- }
84- )
85- replay_messages .QUEUE .send_message .assert_any_call (
86- MessageBody = 'bar' ,
87- MessageAttributes = {
88- 'barAttr1' : {
89- 'DataType' : 'String' ,
90- 'StringValue' : 'barAttr1Value'
91- },
92- 'barAttr2' : {
93- 'DataType' : 'String' ,
94- 'StringValue' : 'barAttr2Value'
84+ },
85+ {
86+ 'Id' : '1' ,
87+ 'MessageBody' : 'bar' ,
88+ 'MessageAttributes' : {
89+ 'barAttr1' : {
90+ 'DataType' : 'String' ,
91+ 'StringValue' : 'barAttr1Value'
92+ },
93+ 'barAttr2' : {
94+ 'DataType' : 'String' ,
95+ 'StringValue' : 'barAttr2Value'
96+ }
9597 }
96- }
97- )
98+ },
99+ ]
100+ replay_messages .QUEUE .send_messages .assert_called_with (Entries = expected_entries )
101+
102+
103+ def test_handler_failure (mocker , replay_messages ):
104+ replay_messages .QUEUE .send_messages .return_value = {'Failed' : 'True' }
105+
106+ event = {
107+ 'Records' : [
108+ {
109+ 'body' : 'foo' ,
110+ 'messageAttributes' : {}
111+ }
112+ ]
113+ }
114+
115+ with pytest .raises (RuntimeError ):
116+ replay_messages .handler (event , None )
0 commit comments