11import unittest
2- from unittest .mock import patch
32from common .aws_lambda_event import AwsLambdaEvent , AwsEventType
43from common .aws_lambda_sqs_event_record import AwsLambdaSqsEventRecord
54
@@ -23,72 +22,20 @@ def setUp(self):
2322 'awsRegion' : 'us-east-1'
2423 }
2524
26- self .s3_record_dict = {
27- 'eventVersion' : '2.1' ,
28- 'eventSource' : 'aws:s3' ,
29- 'eventName' : 'ObjectCreated:Put' ,
30- 'eventTime' : '2023-01-01T12:00:00.000Z' ,
31- 's3' : {
32- 'bucket' : {'name' : 'test-bucket' },
33- 'object' : {'key' : 'test-file.txt' }
34- }
35- }
36-
37- self .sns_record_dict = {
38- 'eventSource' : 'aws:sns' ,
39- 'eventVersion' : '1.0' ,
40- 'eventSubscriptionArn' : 'arn:aws:sns:us-east-1:123456789012:test-topic' ,
41- 'Sns' : {
42- 'Message' : 'Test message' ,
43- 'Subject' : 'Test subject'
44- }
45- }
46-
4725 def test_init_with_sqs_event (self ):
4826 """Test initialization with SQS event"""
4927 event = {
5028 'Records' : [self .sqs_record_dict ],
5129 'eventSource' : 'aws:sqs'
5230 }
5331
54- lambda_event = AwsLambdaEvent ()
55- lambda_event .load_event (event )
32+ lambda_event = AwsLambdaEvent (event )
5633
5734 self .assertEqual (lambda_event .event_type , AwsEventType .SQS )
5835 self .assertEqual (len (lambda_event .records ), 1 )
5936 self .assertIsInstance (lambda_event .records [0 ], AwsLambdaSqsEventRecord )
6037 self .assertEqual (lambda_event .records [0 ].message_id , '12345-abcde-67890' )
6138
62- def test_init_with_s3_event (self ):
63- """Test initialization with S3 event"""
64- event = {
65- 'Records' : [self .s3_record_dict ],
66- 'eventSource' : 'aws:s3'
67- }
68-
69- lambda_event = AwsLambdaEvent ()
70- lambda_event .load_event (event )
71-
72- self .assertEqual (lambda_event .event_type , AwsEventType .S3 )
73- self .assertEqual (len (lambda_event .records ), 1 )
74- self .assertIsInstance (lambda_event .records [0 ], dict )
75- self .assertEqual (lambda_event .records [0 ]['eventSource' ], 'aws:s3' )
76-
77- def test_init_with_sns_event (self ):
78- """Test initialization with SNS event"""
79- event = {
80- 'Records' : [self .sns_record_dict ],
81- 'eventSource' : 'aws:sns'
82- }
83-
84- lambda_event = AwsLambdaEvent ()
85- lambda_event .load_event (event )
86-
87- self .assertEqual (lambda_event .event_type , AwsEventType .SNS )
88- self .assertEqual (len (lambda_event .records ), 1 )
89- self .assertIsInstance (lambda_event .records [0 ], dict )
90- self .assertEqual (lambda_event .records [0 ]['eventSource' ], 'aws:sns' )
91-
9239 def test_init_with_multiple_sqs_records (self ):
9340 """Test initialization with multiple SQS records"""
9441 sqs_record_2 = self .sqs_record_dict .copy ()
@@ -99,8 +46,7 @@ def test_init_with_multiple_sqs_records(self):
9946 'eventSource' : 'aws:sqs'
10047 }
10148
102- lambda_event = AwsLambdaEvent ()
103- lambda_event .load_event (event )
49+ lambda_event = AwsLambdaEvent (event )
10450
10551 self .assertEqual (lambda_event .event_type , AwsEventType .SQS )
10652 self .assertEqual (len (lambda_event .records ), 2 )
@@ -115,39 +61,23 @@ def test_init_with_empty_records(self):
11561 'Records' : []
11662 }
11763
118- lambda_event = AwsLambdaEvent ()
119- lambda_event .load_event (event )
64+ lambda_event = AwsLambdaEvent (event )
12065
12166 self .assertEqual (lambda_event .event_type , AwsEventType .UNKNOWN )
12267 self .assertEqual (len (lambda_event .records ), 0 )
12368
124- @patch ('common.aws_lambda_event.logger' )
125- def test_init_without_records (self , mock_logger ):
69+ def test_init_without_records (self ):
12670 """Test initialization without Records key"""
12771 event = {
12872 'some_other_key' : 'value'
12973 }
13074
131- lambda_event = AwsLambdaEvent ()
132- lambda_event .load_event (event )
75+ lambda_event = AwsLambdaEvent (event )
13376
13477 self .assertEqual (lambda_event .event_type , AwsEventType .UNKNOWN )
13578 self .assertEqual (len (lambda_event .records ), 0 )
13679
137- def test_init_with_top_level_event_source (self ):
138- """Test initialization with eventSource at top level"""
139- event = {
140- 'eventSource' : 'aws:s3' ,
141- 'Records' : [self .s3_record_dict ]
142- }
143-
144- lambda_event = AwsLambdaEvent ()
145- lambda_event .load_event (event )
146-
147- self .assertEqual (lambda_event .event_type , AwsEventType .S3 )
148-
149- @patch ('common.aws_lambda_event.logger' )
150- def test_init_with_unknown_event_source (self , mock_logger ):
80+ def test_init_with_unknown_event_source (self ):
15181 """Test initialization with unknown event source"""
15282 unknown_record = {
15383 'eventSource' : 'aws:unknown-service' ,
@@ -157,8 +87,7 @@ def test_init_with_unknown_event_source(self, mock_logger):
15787 'Records' : [unknown_record ]
15888 }
15989
160- lambda_event = AwsLambdaEvent ()
161- lambda_event .load_event (event )
90+ lambda_event = AwsLambdaEvent (event )
16291
16392 self .assertEqual (lambda_event .event_type , AwsEventType .UNKNOWN )
16493 self .assertEqual (len (lambda_event .records ), 1 )
@@ -173,8 +102,7 @@ def test_init_with_missing_event_source(self):
173102 'Records' : [record_without_source ]
174103 }
175104
176- lambda_event = AwsLambdaEvent ()
177- lambda_event .load_event (event )
105+ lambda_event = AwsLambdaEvent (event )
178106
179107 self .assertEqual (lambda_event .event_type , AwsEventType .UNKNOWN )
180108
@@ -187,11 +115,10 @@ def test_enum_values(self):
187115
188116 def test_mixed_multiple_records (self ):
189117 """Test that mixed event sources uses the first record's type"""
190- mixed_records = [self .sqs_record_dict , self . s3_record_dict ]
118+ mixed_records = [self .sqs_record_dict , {} ]
191119 event = {'Records' : mixed_records , 'eventSource' : 'aws:sqs' }
192120
193- lambda_event = AwsLambdaEvent ()
194- lambda_event .load_event (event )
121+ lambda_event = AwsLambdaEvent (event )
195122
196123 self .assertEqual (lambda_event .event_type , AwsEventType .SQS )
197124 self .assertEqual (len (lambda_event .records ), 2 )
@@ -200,8 +127,7 @@ def test_empty_records(self):
200127 """Test empty records"""
201128 event = {'Records' : []}
202129
203- lambda_event = AwsLambdaEvent ()
204- lambda_event .load_event (event )
130+ lambda_event = AwsLambdaEvent (event )
205131
206132 self .assertEqual (lambda_event .event_type , AwsEventType .UNKNOWN )
207133 self .assertEqual (len (lambda_event .records ), 0 )
0 commit comments