from unittest import mock import pytest from slz_apple_music_charts_pipeline_configurator.handler import build_batch_config, handler @pytest.mark.parametrize( 'batch_config,expected', [( {}, { 'Command': [ '--env=dev', '--uow-id=am-1', '--job-id=am-sf-name', '--storefronts=us,mx,gb', '--report-date=2021-10-01', '--dsp=apple', '--report-type=charts_daily', '--licensor=sme', '--version=v1', '--config-bucket=dev-delphi-configs', '--quarantine-bucket=slz/decompressed-quarantine/bucket', '--corrupted-bucket=slz/corrupted/bucket', '--decompressed-bucket=slz/decompressed/bucket', '--vendor-api-secret-key=vendor/api/secret', '--rds-secret-key=slz/rds/secret', '--sentry-secret-key=sentry/secret/key', ] }, )] ) def test_build_batch_config(batch_config, expected, config_stub, payload_stub): batch_config = build_batch_config(config_stub, payload_stub, batch_config) assert batch_config == expected def test_handler(config_stub, payload_stub, scraper_batch_config): logger = mock.Mock() lambda_context = mock.Mock() config_stub.apple_music_scrapper_batch_config_path = scraper_batch_config result = handler(lambda_context, logger, config_stub, payload_stub) expected = { 'apple_music_charts_scrapper': { 'Command': [ '--env=dev', '--uow-id=am-1', '--job-id=am-sf-name', '--storefronts=us,mx,gb', '--report-date=2021-10-01', '--dsp=apple', '--report-type=charts_daily', '--licensor=sme', '--version=v1', '--config-bucket=dev-delphi-configs', '--quarantine-bucket=slz/decompressed-quarantine/bucket', '--corrupted-bucket=slz/corrupted/bucket', '--decompressed-bucket=slz/decompressed/bucket', '--vendor-api-secret-key=vendor/api/secret', '--rds-secret-key=slz/rds/secret', '--sentry-secret-key=sentry/secret/key', ], 'JobDefinition': ( 'arn:aws:batch:us-east-1:475275892927:job-definition/' 'test-delphi-slz-apple-music-charts-scrapper:1' ), 'JobQueue': 'arn:aws:batch:us-east-1:475275892927:job-queue/test-delphi-main', }, 'meta': { 'status': 'OK' }, } assert result == expected