"""Test ows-abacus-worksheet requests.""" from unittest.mock import patch import httpx from owsclient.test import OwsClientMock from adjustments_apply.ows_abacus_worksheet import get_adjustments_by_adjustment_file_id @patch('adjustments_apply.ows_abacus_worksheet.raise_service_error') def test_get_adjustments_by_adjustment_file_id( mock_raise_service_error, mock_worksheet_adjustments_and_details, ows_client_mock: OwsClientMock, ): """Test to get worksheet adjustments and details.""" statement_period_adjustment_file_id = 1 ows_client_mock.get( 'ows-abacus-worksheet', f'/worksheet-adjustments/statement-period-adjustment-file/{statement_period_adjustment_file_id}/?limit=5000&offset=0', # noqa: E501 ).mock( return_value=httpx.Response(200, json=mock_worksheet_adjustments_and_details) ) res = get_adjustments_by_adjustment_file_id(statement_period_adjustment_file_id) assert res == mock_worksheet_adjustments_and_details mock_raise_service_error.assert_not_called() @patch('adjustments_apply.ows_abacus_worksheet.raise_service_error') def test_get_adjustments_by_adjustment_file_id_failure( mock_raise_service_error, ows_client_mock: OwsClientMock, ): """Test to get worksheet adjustments and details failed.""" statement_period_adjustment_file_id = 1 url = f'/worksheet-adjustments/statement-period-adjustment-file/{statement_period_adjustment_file_id}/' # noqa: E501 ows_client_mock.get( 'ows-abacus-worksheet', url, ).mock( return_value=httpx.Response( 400, text='error', ) ) res = get_adjustments_by_adjustment_file_id( statement_period_adjustment_file_id, 2, 0 ) assert res is None mock_raise_service_error.assert_called_once_with( f'ERROR in GET {url}', 'ows-abacus-worksheet' )