"""Test for create_accounting_period_report task.""" from typing import Any from unittest.mock import patch from lib.config import S3_SALES_BUCKET_NAME from tasks.accounting_period_calculate_vat.create_accounting_period_report import \ create_accounting_period_report_task @patch('lib.utils.aws.file_exists') @patch('tasks.accounting_period_calculate_vat.create_accounting_period_report' '.ows.create_accounting_period_report') @patch('tasks.accounting_period_calculate_vat.create_accounting_period_report' '.ows.get_accounting_period_details') def test_create_accounting_period_report_task( mock_ows_get_accounting_period_details, mock_ows_create_report, mock_aws_file_exists, mock_accounting_period_calc_vat_dag_run, mock_ows_requests: dict[str, Any], ): """Test creating accounting period report with report_url values.""" mock_aws_file_exists.return_value = True mock_ows_get_accounting_period_details.return_value =\ mock_ows_requests['mock_accounting_period'] create_accounting_period_report_task(mock_accounting_period_calc_vat_dag_run) assert mock_aws_file_exists.call_count == 2 assert mock_aws_file_exists.call_args_list[0][0][0] == \ f's3://{S3_SALES_BUCKET_NAME}/2-mock-period-2/vat/reports/vat_applied_gbr.tsv' assert mock_aws_file_exists.call_args_list[1][0][0] == \ f's3://{S3_SALES_BUCKET_NAME}/2-mock-period-2/vat/reports/vat_exempt.tsv' mock_ows_get_accounting_period_details.assert_called_once_with(2) assert mock_ows_create_report.call_count == 2 assert mock_ows_create_report.call_args_list[0][0][0] == 2 assert mock_ows_create_report.call_args_list[0][1] == { 'report_type': 'vat_applied_gbr', 'report_url': f's3://{S3_SALES_BUCKET_NAME}/2-mock-period-2/vat/reports/vat_applied_gbr.tsv' # noqa: E501 } assert mock_ows_create_report.call_args_list[1][0][0] == 2 assert mock_ows_create_report.call_args_list[1][1] == { 'report_type': 'vat_exempt', 'report_url': f's3://{S3_SALES_BUCKET_NAME}/2-mock-period-2/vat/reports/vat_exempt.tsv' # noqa: E501 }