"""Fixtures for lambda testing.""" import base64 import json import os import boto3 import pytest @pytest.fixture() def payload(): """Event payload.""" api_message = { 'api_request': { 'store': 'SPOTIFY', 'type': 'SEARCH_ALBUM_BY_UPC'}, 'payload': { 'product_id': 819232, 'upc': '837101199926', 'vendor_id': 20213, 'subaccount_id': 0}} message = base64.b64encode(json.dumps(api_message).encode()).decode() event = { 'records': { 'stream.storeAPIRequest.spotify.split-1': [{ 'value': message, }] } } return json.dumps(event).encode() @pytest.fixture() def invoke_lambda(payload): """Invoke the lambda function.""" # Default to 'dev' for integration tests environment = os.environ.get('ENVIRONMENT', 'dev') lambda_name = f'{environment}-lambda-spotify-api' client = boto3.client('lambda') return client.invoke( FunctionName=lambda_name, InvocationType='RequestResponse', LogType='None', Payload=payload, )