"""Test ows-connector requests.""" from unittest.mock import patch import httpx from owsclient.test import OwsClientMock from reserves_schedule.ows_royalties import get_contract_reserves_by_ids @patch('reserves_schedule.ows_royalties.raise_service_error') @patch('reserves_schedule.ows_royalties.app_logger') def test_get_contract_reserves_by_ids( mock_logger, mock_raise_service_error, mock_contract_reserves_response, ows_client_mock: OwsClientMock ): """Test successfully getting contract reserves for the specified ids.""" contract_reserve_ids = [1, 2] ows_client_mock.post( 'ows-royalties', '/contract-reserves/', json=contract_reserve_ids ).mock( return_value=httpx.Response( 200, json=mock_contract_reserves_response ) ) res = get_contract_reserves_by_ids(contract_reserve_ids) assert res == mock_contract_reserves_response mock_logger.error.assert_not_called() mock_raise_service_error.assert_not_called() @patch('reserves_schedule.ows_royalties.raise_service_error') @patch('reserves_schedule.ows_royalties.app_logger') def test_get_contract_reserves_by_ids_failure( mock_logger, mock_raise_service_error, mock_contract_reserves_response, ows_client_mock: OwsClientMock ): """Test failure getting contract reserves for the specified ids.""" contract_reserve_ids = [1, 2] ows_client_mock.post( 'ows-royalties', '/contract-reserves/', json=contract_reserve_ids, ).mock( return_value=httpx.Response( 404, json={'error': 'error'} ) ) res = get_contract_reserves_by_ids(contract_reserve_ids) assert res is None assert mock_logger.error.call_count == 2 mock_raise_service_error.assert_called_once_with( 'ERROR in POST /contract-reserves/', 'ows-royalties')