"""Lambda test module.""" from datetime import date, datetime import pytest from freezegun import freeze_time import transform @pytest.fixture def graphql_data(): """Fixture to return graphql data.""" return { 'productId': 12345, 'productName': None, 'format': None, 'releaseDate': None, 'genreId': None, 'subgenreId': None, 'tracks': [ { 'explicit': 'Y', 'isrc': 'ABCD1234', 'metaLanguageCode': 'en', 'pInfo': '2015 lawlcakes', 'durationSeconds': 42, 'durationMinutes': 3, 'primaryArtists': [ { 'artistName': 'eric tan', 'artistType': 'performer' } ], 'trackName': 'astrosloth', 'trackNumber': 1, 'volumeNumber': 1 }, { 'explicit': 'Y', 'isrc': 'ABCD2234', 'metaLanguageCode': 'es', 'pInfo': '2015 lawlcakes', 'durationSeconds': 33, 'durationMinutes': 4, 'primaryArtists': [ { 'artistName': 'eric cumberbatch', 'artistType': 'performer' } ], 'trackName': 'pengwing', 'trackNumber': 2, 'volumeNumber': 1 }, ] } @freeze_time('2020-01-01T00:00:00.100000+00:00') def test_transform_metadata(graphql_data): """Test metadata transformation logic.""" expected_transformed_metadata = { 'message_thread_id': 12345, 'message_id': '12345_20200101_000000', 'message_created_date_time': '2020-01-01T00:00:00.100000+00:00', 'message_notification_period_start': date(2020, 1, 1), 'message_notification_period_end': date(2020, 1, 1), 'tracks': [ { 'explicit': 'Y', 'isrc': 'ABCD1234', 'metaLanguageCode': 'en', 'pInfo': '2015 lawlcakes', 'durationSeconds': 42, 'durationMinutes': 3, 'primaryArtists': [ { 'artistName': 'eric tan', 'artistType': 'performer' } ], 'trackName': 'astrosloth', 'trackNumber': 1, 'volumeNumber': 1}, { 'explicit': 'Y', 'isrc': 'ABCD2234', 'metaLanguageCode': 'es', 'pInfo': '2015 lawlcakes', 'durationSeconds': 33, 'durationMinutes': 4, 'primaryArtists': [ { 'artistName': 'eric cumberbatch', 'artistType': 'performer' } ], 'trackName': 'pengwing', 'trackNumber': 2, 'volumeNumber': 1}, ] } result = transform.transform_metadata(graphql_data) assert result == expected_transformed_metadata def test_build_message_id(): """Test that the message id is returned in the correct format.""" test_product_id = 12345 test_release_created_datetime = datetime(2020, 1, 1) message_id = transform.build_message_id(test_product_id, test_release_created_datetime) assert message_id == '12345_20200101_000000'