@@ -928,13 +928,8 @@ def test_extract_source_arn_sqs_event(self):
928928 ]
929929 }
930930
931- event_source = type (
932- "EventSource" ,
933- (),
934- {"equals" : lambda self , event_type , ** kwargs : event_type .name == "SQS" },
935- )()
931+ result = wrapper .extract_source_arn (sqs_event )
936932
937- result = wrapper .extract_source_arn (sqs_event , event_source )
938933 self .assertEqual (result , "arn:aws:sqs:us-east-1:123456789012:test-queue" )
939934
940935 def test_extract_source_arn_sns_event (self ):
@@ -952,13 +947,8 @@ def test_extract_source_arn_sns_event(self):
952947 ]
953948 }
954949
955- event_source = type (
956- "EventSource" ,
957- (),
958- {"equals" : lambda self , event_type , ** kwargs : event_type .name == "SNS" },
959- )()
950+ result = wrapper .extract_source_arn (sns_event )
960951
961- result = wrapper .extract_source_arn (sns_event , event_source )
962952 self .assertEqual (result , "arn:aws:sns:us-east-1:123456789012:test-topic" )
963953
964954 def test_extract_source_arn_other_event (self ):
@@ -971,11 +961,75 @@ def test_extract_source_arn_other_event(self):
971961 },
972962 }
973963
974- event_source = type (
975- "EventSource" ,
976- (),
977- {"equals" : lambda self , event_type , ** kwargs : event_type .name == "S3" },
978- )()
964+ result = wrapper .extract_source_arn (other_event )
979965
980- result = wrapper .extract_source_arn (other_event , event_source )
981966 self .assertEqual (result , "" )
967+
968+ def test_extract_source_arn_kinesis_event (self ):
969+ """Test extracting ARN from Kinesis event"""
970+ kinesis_event = {
971+ "Records" : [
972+ {
973+ "kinesis" : {
974+ "kinesisSchemaVersion" : "1.0" ,
975+ "partitionKey" : "partitionkey" ,
976+ "sequenceNumber" : "496242301546858" ,
977+ "data" : "eyJmb28iOiAiYmFyIn0=" ,
978+ "approximateArrivalTimestamp" : 1643638425.163 ,
979+ },
980+ "eventSource" : "aws:kinesis" ,
981+ "eventVersion" : "1.0" ,
982+ "eventID" : "shardId-000000000002:49624230154685806402418" ,
983+ "eventName" : "aws:kinesis:record" ,
984+ "invokeIdentityArn" : "arn:aws:iam::601427279990:role/test-role" ,
985+ "awsRegion" : "us-east-1" ,
986+ "eventSourceARN" : "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream" ,
987+ }
988+ ]
989+ }
990+
991+ result = wrapper .extract_source_arn (kinesis_event )
992+
993+ self .assertEqual (
994+ result , "arn:aws:kinesis:us-east-1:123456789012:stream/test-stream"
995+ )
996+
997+ def test_extract_source_arn_sns_to_sqs_event (self ):
998+ """Test extracting ARN from SNS -> SQS event (SQS record from SNS topic)"""
999+ sns_to_sqs_event = {
1000+ "Records" : [
1001+ {
1002+ "messageId" : "892f0033-3a4e-4d61-9e26-70d6f7901cd5" ,
1003+ "receiptHandle" : "test-receipt-handle" ,
1004+ "body" : {
1005+ "Type" : "Notification" ,
1006+ "MessageId" : "6dacdb4e-f8dd-5752-9f49-858ee02bcd55" ,
1007+ "TopicArn" : "arn:aws:sns:us-east-1:123456789012:test-topic" ,
1008+ "Message" : "hello from SNS" ,
1009+ "Timestamp" : "2024-05-16T14:22:46.902Z" ,
1010+ "SignatureVersion" : "1" ,
1011+ "Signature" : "test-signature" ,
1012+ "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/test-cert.pem" ,
1013+ "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe" ,
1014+ "MessageAttributes" : {},
1015+ },
1016+ "attributes" : {
1017+ "ApproximateReceiveCount" : "1" ,
1018+ "SentTimestamp" : "1715869366931" ,
1019+ "SenderId" : "test-sender-id" ,
1020+ "ApproximateFirstReceiveTimestamp" : "1715869366945" ,
1021+ },
1022+ "messageAttributes" : {},
1023+ "md5OfBody" : "test-md5-hash" ,
1024+ "eventSource" : "aws:sqs" ,
1025+ "eventSourceARN" : "arn:aws:sqs:us-east-1:123456789012:test-queue-from-sns" ,
1026+ "awsRegion" : "us-east-1" ,
1027+ }
1028+ ]
1029+ }
1030+
1031+ result = wrapper .extract_source_arn (sns_to_sqs_event )
1032+
1033+ self .assertEqual (
1034+ result , "arn:aws:sqs:us-east-1:123456789012:test-queue-from-sns"
1035+ )
0 commit comments