"""Test for snapshot_account_payment_terms task.""" import json from unittest.mock import MagicMock, patch from tasks.accounting_period_calculate_vat.snapshot_account_payment_terms import \ snapshot_account_payment_terms_task @patch('tasks.accounting_period_calculate_vat.snapshot_account_payment_terms.' 'ows.get_account_payment_term_snapshot') @patch('tasks.accounting_period_calculate_vat.snapshot_account_payment_terms.' 'ows.get_accounting_period_details') @patch('lib.utils.aws.location') @patch('lib.utils.aws.write_file') def test_snapshot_account_payment_terms_task( mock_aws_write_file, mock_aws_location, mock_ows_get_accounting_period_details: MagicMock, mock_ows_get_account_payment_term_snapshot: MagicMock, mock_accounting_period_calc_vat_dag_run, mock_ows_requests, ): """Test snapshotting payment terms to vat's s3 subdir.""" mock_ows_get_accounting_period_details.return_value =\ mock_ows_requests['mock_accounting_period'] mock_ows_get_account_payment_term_snapshot.return_value =\ json.dumps(mock_ows_requests['mock_account_payment_terms']).encode('utf-8') mock_aws_location.return_value = MagicMock( url='account_payment_terms.csv' ) snapshot_account_payment_terms_task(mock_accounting_period_calc_vat_dag_run) mock_aws_write_file.assert_called_once_with( 'account_payment_terms.csv', json.dumps(mock_ows_requests['mock_account_payment_terms']).encode('utf-8') ) mock_ows_get_accounting_period_details.assert_called_once_with(2)