import datetime import pathlib import unittest.mock import pytest from apps_etl_manager.entities.aws_lambda import LambdaConfig, LambdaPayload from apps_etl_manager.handler import handler @pytest.mark.integration def test_handler(mocker, session): fixtures = pathlib.Path(__file__).parent / 'fixtures' config_path = fixtures / 'test_etl_config_handler.json' patched_decrease_priorities = mocker.patch( 'apps_etl_manager.unit_of_works.uows.UnitOfWorks.decrease_priorities' ) patched_initialize = mocker.patch('apps_etl_manager.unit_of_works.uows.UnitOfWorks.initialize') patched_run = mocker.patch('apps_etl_manager.unit_of_works.uows.UnitOfWorks.run') lambda_config = LambdaConfig( config_path=str(config_path), max_failure_count=3, batch_size=10, priority_decrease_period_days=2, sentry_secret_key='sentry_secret_key', rds_secret_key='rds_secret_key', sf_secret_key='sf_secret_key', ) lambda_payload = LambdaPayload( initialize=True, current_dt=datetime.datetime(2019, 10, 19, 1, 2, 3), data_sources=['slz'] ) handler( unittest.mock.Mock(), lambda_config, lambda_payload, session, unittest.mock.Mock(), 'test' ) patched_decrease_priorities.assert_called_once_with(lambda_config) patched_initialize.assert_called_once_with(lambda_payload) patched_run.assert_called_once_with(lambda_config, lambda_payload, 'test')