"""Tests for utils.""" import pytest from src import lambda_exceptions from src import util def test_extract_triggered_key(): """Test extract_triggered_key function.""" test_bucket = 'test_bucket' test_key = 'test_key' event_mock = { 'detail-type': 'AWS API Call via CloudTrail', 'detail': { 'requestParameters': { 'bucketName': test_bucket, 'key': test_key } } } bucket, key = util.extract_triggered_key(event_mock) assert bucket == test_bucket assert key == test_key def test_extract_triggered_key_object_created(): """Test extract_triggered_key function.""" test_bucket = 'test_bucket' test_key = 'test_key' event_mock = { 'detail-type': 'Object Created', 'detail': { 'bucket': { 'name': test_bucket }, 'object': { 'key': test_key } } } bucket, key = util.extract_triggered_key(event_mock) assert bucket == test_bucket assert key == test_key def test_extract_triggered_key_guardduty_scan_result(): """Test extract_triggered_key with GuardDuty malware scan result event.""" test_bucket = 'test_bucket' test_key = 'test_key' event_mock = { 'detail-type': 'GuardDuty Malware Protection Object Scan Result', 'detail': { 's3ObjectDetails': { 'bucketName': test_bucket, 'objectKey': test_key, } } } bucket, key = util.extract_triggered_key(event_mock) assert bucket == test_bucket assert key == test_key def test_extract_triggered_key_with_invalid_params(): """Test extract_triggered_key function.""" event_mock = {'detail': { 'requestParameters': { 'event_arg': None, } }} with pytest.raises(lambda_exceptions.UnexpectedEventBody): util.extract_triggered_key(event_mock)