"""Auto report generation tests.""" from unittest import mock from uuid import uuid4 from sqlalchemy import select from sqlalchemy.orm import Session from auto_report_run.db.collaborators import create_report_run, get_report_run from auto_report_run.db.collaborators_model import Report from auto_report_run.db.royalty_accounting_model import StatementPeriod from tests.util import get_object_as_dict def test_get_report_run() -> None: report_run = get_report_run(1) assert get_object_as_dict(report_run) == { "id": 1, "name": "Test Report 1", "period_ids": "1", "period_name": "1", "uuid": "1", "file_format": "xls", "number_format": "us", "source": "ABACUS", "trigger_type": "AUTO", "requestor_identity_uuid": "967a08da-e7ba-4f38-a732-1c837bf28fa1", } def test_get_report_run_not_found() -> None: report_run = get_report_run(999) assert report_run is None @mock.patch("auto_report_run.db.collaborators.uuid4") def test_create_report_run(mock_uuid4: mock.MagicMock, test_session: Session) -> None: uuid = str(uuid4()) mock_uuid4.return_value = uuid statement_period = StatementPeriod( statement_period_id=1, statement_period_name="January 2024", ) vendors_with_dp_fc = [1, 3] report_run = create_report_run( statement_period, vendors_with_dp_fc, requestor_identity_uuid="967a08da-e7ba-4f38-a732-1c837bf28fa1", ) reports = test_session.scalars( select(Report).where(Report.report_run_id == report_run.report_run_id) ) assert get_object_as_dict(report_run) == { "id": 2, "name": statement_period.statement_period_name, "period_ids": str(statement_period.statement_period_id), "period_name": statement_period.statement_period_name, "uuid": uuid, "file_format": "xls", "number_format": "us", "source": "ABACUS", "trigger_type": "AUTO", "requestor_identity_uuid": "967a08da-e7ba-4f38-a732-1c837bf28fa1", } assert [get_object_as_dict(report) for report in reports] == [ { "collaborator_id": 1, "collaborator_dp_enabled": True, "filename": f"{uuid}_1", "id": 3, "report_run_id": report_run.report_run_id, "status": "REQUESTED", }, { "collaborator_id": 3, "collaborator_dp_enabled": False, "filename": f"{uuid}_3", "id": 4, "report_run_id": report_run.report_run_id, "status": "REQUESTED", }, ]