"""Test adjustment_file_validation_check task.""" from unittest.mock import patch from dags.lib import constants from tasks.adjustment_file_upload.adjustment_file_validation_check \ import adjustment_file_validation_check @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.ows') @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.helpers') def test_adjustment_file_validation_check_true( mock_helpers, mock_ows, mock_statement_period_adjustment_file_details, mock_adjustment_file_upload_dag_run, ): """Test task returns true when valid row count is updated.""" statement_period_adjustment_file_id = 1 mock_response = mock_statement_period_adjustment_file_details mock_response.update({ 'valid_row_count': 10 }) mock_ows.get_statement_period_adjustment_file_details.return_value = mock_response mock_helpers.get_event_from_params.return_value.target_id = \ statement_period_adjustment_file_id res = adjustment_file_validation_check(mock_adjustment_file_upload_dag_run) assert res is True mock_ows.get_statement_period_adjustment_file_details.assert_called_once_with( statement_period_adjustment_file_id) @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.ows') @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.helpers') def test_adjustment_file_validation_check_false( mock_helpers, mock_ows, mock_statement_period_adjustment_file_details, mock_adjustment_file_upload_dag_run ): """Test task returns true when valid row count is not updated.""" statement_period_adjustment_file_id = 1 mock_response = mock_statement_period_adjustment_file_details mock_response.update({ 'valid_row_count': None }) mock_ows.get_statement_period_adjustment_file_details.return_value = mock_response mock_helpers.get_event_from_params.return_value.target_id = \ statement_period_adjustment_file_id res = adjustment_file_validation_check(mock_adjustment_file_upload_dag_run) assert res is False @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.ows') @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.helpers') def test_adjustment_file_validation_check_error_state( mock_helpers, mock_ows, mock_statement_period_adjustment_file_details, mock_adjustment_file_upload_dag_run ): """Test task returns false when action status is error.""" statement_period_adjustment_file_id = 1 mock_response = mock_statement_period_adjustment_file_details mock_response.update({ 'valid_row_count': None }) mock_ows.get_statement_period_adjustment_file_details.return_value = mock_response mock_helpers.get_event_from_params.return_value.target_id = \ statement_period_adjustment_file_id mock_helpers.get_abacus_state.return_value = { 'action_status': constants.ABACUS_STATE_STATUSES.ERROR } res = adjustment_file_validation_check(mock_adjustment_file_upload_dag_run) assert res is True mock_ows.get_statement_period_adjustment_file_details.assert_called_once_with( statement_period_adjustment_file_id) mock_helpers.get_abacus_state.assert_called_once_with( constants.STATEMENT_PERIOD_ADJUSTMENT_FILE_ACTIONS.UPLOAD_FILE, statement_period_adjustment_file_id ) @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.ows') @patch('tasks.adjustment_file_upload.adjustment_file_validation_check.helpers') def test_adjustment_file_validation_check_error_state_true( mock_helpers, mock_ows, mock_statement_period_adjustment_file_details, mock_adjustment_file_upload_dag_run ): """Test task returns true when action status is complete and valid_row_count is updated.""" # noqa: E501 statement_period_adjustment_file_id = 1 mock_response = mock_statement_period_adjustment_file_details mock_response.update({ 'valid_row_count': 10 }) mock_ows.get_statement_period_adjustment_file_details.return_value = mock_response mock_helpers.get_event_from_params.return_value.target_id = \ statement_period_adjustment_file_id mock_helpers.get_abacus_state.return_value = { 'action_status': constants.ABACUS_STATE_STATUSES.COMPLETE } res = adjustment_file_validation_check(mock_adjustment_file_upload_dag_run) assert res is True mock_ows.get_statement_period_adjustment_file_details.assert_called_once_with( statement_period_adjustment_file_id) mock_helpers.get_abacus_state.assert_called_once_with( constants.STATEMENT_PERIOD_ADJUSTMENT_FILE_ACTIONS.UPLOAD_FILE, statement_period_adjustment_file_id )