"""A testing script for running the lambda locally.""" # TODO: add test cases for malformed messages import os os.environ['OWSREQUEST_SERVICE_MAP'] = '{"ows-asset-transcoder": "localhost:5001"}' success_event = { 'Records': [ { 'EventSource': 'aws:sns', 'EventVersion': '1.0', 'EventSubscriptionArn': 'arn:aws:sns:us-east-1:103233932089:dev-asset_transcoder_general_status:3a125253' '-8b36-44d5-9439-12657ee73938', 'Sns': { 'Type': 'Notification', 'MessageId': 'c2400c1a-12a4-57f4-81a0-5b2f4c6327f6', 'TopicArn': 'arn:aws:sns:us-east-1:103233932089:dev-asset_transcoder_general_status', 'Subject': None, 'Message': '{"function": "asset-transcoder-acknowledge", "status": "upload_complete", "filename": ' '"ff5287e7_ba4f_4b7e_9d2a_f18bae2444d3.jpg", "bucket": "dev-orcd-asset-transcoder-input", ' '"status_time": "2020-05-12T22:33:43.644257Z"}', 'Timestamp': '2020-05-13T02:33:43.823Z', 'SignatureVersion': '1', 'Signature': 'bHY2RQFsoVuNg3FHuuMRZVu4PEGrcHq/c7KebeG62Il/nK+351Ldcl7IbX0QARB7OxuOtuyBdHiy', 'SigningCertUrl': 'https://sns.us-east-1.amazonaws.com/SimpleNotificationService' '-a86cb10b4e1f29c941702d737128f7b6.pem', 'UnsubscribeUrl': 'https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws' ':sns:us-east-1:103233932089:dev-asset_transcoder_general_status:3a125253-8b36-44d5' '-9439-12657ee73938', 'MessageAttributes': {}}}]} error_event = { 'Records': [ { 'EventSource': 'aws:sns', 'EventVersion': '1.0', 'EventSubscriptionArn': 'arn:aws:sns:us-east-1:103233932089:dev-asset_transcoder_general_status:3a125253' '-8b36-44d5-9439-12657ee73938', 'Sns': { 'Type': 'Notification', 'MessageId': '8e957311-9560-5d4f-8f84-2424e77aa86d', 'TopicArn': 'arn:aws:sns:us-east-1:103233932089:dev-asset_transcoder_general_status', 'Subject': None, 'Message': '{"function": "asset-transcoder-acknowledge", "status": "acknowledge_error", "filename": ' '"ff5287e7_ba4f_4b7e_9d2a_f18bae2444d3.jpg", "bucket": "dev-orcd-asset-transcoder-input", ' '"status_time": "2020-05-12T23:56:09.201810Z", "errors": {"post_asset_error": "post asset ' 'failed with code 400 {\\"message\\": {\\"object_type\\": [\\"Missing data for required ' 'field.\\"]}}"}}', 'Timestamp': '2020-05-13T03:56:10.427Z', 'SignatureVersion': '1', 'Signature': 'CnWbje57IdeLRtY+c/Vsry/GhkeS9ODJ1Z/e7Rbse64MPwRkIyejbj0QgShXBQ+ETwL1XD42+qqcaj2', 'SigningCertUrl': 'https://sns.us-east-1.amazonaws.com/SimpleNotificationService' '-a86cb10b4e1f29c941702d737128f7b6.pem', 'UnsubscribeUrl': 'https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws' ':sns:us-east-1:103233932089:dev-asset_transcoder_general_status:3a125253-8b36-44d5' '-9439-12657ee73938', 'MessageAttributes': {}}}]} if __name__ == '__main__': from src.app import handler for event in [success_event, error_event]: handler(event, None)