"""Test for fetch contracts task.""" from unittest.mock import MagicMock, patch from lib.config import S3_SALES_BUCKET_NAME as S3_BUCKET from tasks.accounting_run_calculate.snapshot_contracts import snapshot_contracts @patch('dags.tasks.accounting_run_calculate.snapshot_contracts.' 'ows.get_contract_term_details_by_contract_ids') @patch('dags.tasks.accounting_run_calculate.snapshot_contracts.' 'ows.get_contract_details_by_contract_ids') @patch('dags.tasks.accounting_run_calculate.snapshot_contracts.' 'ows.get_contracts_by_accounting_run') @patch('dags.tasks.accounting_run_calculate.snapshot_contracts.' 'helpers.get_event_records') @patch('lib.utils.aws.s3fs') def test_snapshot_contracts_task( mock_s3fs: MagicMock, mock_helpers_get_event_records: MagicMock, mock_contracts_snapshot: MagicMock, mock_ows_get_contract_details_by_contract_ids: MagicMock, mock_ows_get_contract_term_details_by_contract_ids: MagicMock, mock_accounting_run_calculate_dag_run, mock_accounting_period, mock_accounting_run, ): """Test fetch contracts from ows-royalties.""" contract_ids = [10, 18] mock_contracts = '"contract_id","contract_name","payee_id","term_end","term_start"\n \ "10","Ten","12","2020-06-01","2019-06-01"\n \ "18","Eighteen","12","2020-06-01","2019-06-01"' mock_contract_terms = \ '"attachments","conditions","is_base_term","priority","term_rate","term_type"\n \ "11,22","{"countries":["MEX","USA"]}","1","1","20.20","label"' mock_contracts_snapshot.return_value = contract_ids mock_helpers_get_event_records.return_value =\ mock_accounting_period, mock_accounting_run mock_ows_get_contract_details_by_contract_ids.return_value =\ mock_contracts.encode('utf-8') mock_ows_get_contract_term_details_by_contract_ids.return_value =\ mock_contract_terms.encode('utf-8') res = snapshot_contracts(mock_accounting_run_calculate_dag_run) assert res is None mock_helpers_get_event_records.assert_called_once_with( mock_accounting_run['accounting_run_id']) assert mock_s3fs.S3FileSystem.return_value.open.call_args[0][0] == \ f's3://{S3_BUCKET}/1024-mock-period/' \ '1021-mock-run/match-contracts/snapshots/contract-terms.csv' # what? mock_ows_get_contract_details_by_contract_ids.assert_called_once() mock_ows_get_contract_term_details_by_contract_ids.assert_called_once()