import datetime from unittest import mock from unittest.mock import MagicMock from dapd_db_schema.schemas.uow_meta import UnitOfWork from dapd_exporter_lambda.entities import Config from dapd_exporter_lambda.services.audit_log import AuditLogService from dapd_exporter_lambda.services.db import APIDBConnector from dapd_exporter_lambda.services.flows.backward import BackwardFlow @mock.patch('dapd_exporter_lambda.services.flows.backward.BackwardFlow.create_unit_of_work') def test_execute_flow(create_unit_of_work): api_db = MagicMock(spec=APIDBConnector) auditlog = MagicMock(spec=AuditLogService) config = MagicMock(spec=Config) event = {'file_path': 'path'} flow = BackwardFlow(api_db=api_db, auditlog=auditlog, config=config, event=event) create_unit_of_work.return_value = UnitOfWork(uow_id=1) res = flow.execute_flow() assert res == 1 def test_get_created_at(): file_path = ( 's3://test-delphi-chartmetric/charts_youtube_trending/' 'report_date=2021-06-26/' 'timestamp=2021-06-26T13:06:28/' 'version=v1/_success\\' ) actual = BackwardFlow.get_created_at(file_path) expected = datetime.datetime( year=2021, day=26, month=6, hour=13, minute=6, second=28, tzinfo=datetime.timezone.utc ) assert actual == expected