"""Test ows-ledger requests.""" from unittest.mock import patch import httpx from owsclient.test import OwsClientMock from reserves_take.ows_ledger import bulk_create_ledger_deposit_entries from reserves_take.ows_ledger import bulk_create_ledger_reserve_taken_entries @patch('reserves_take.ows_ledger.error_handling.raise_service_error') @patch('reserves_take.ows_ledger.app_logger') def test_bulk_create_ledger_deposit_entries( mock_logger, mock_raise_service_error, mock_ledger_deposit_body, ows_client_mock: OwsClientMock, ): """Test successfully bulk creating ledger entries.""" ows_client_mock.post( 'ows-ledger', '/ledger/bulk', json=mock_ledger_deposit_body, ).mock( return_value=httpx.Response( 201, json={'message': 'OK'} ) ) res = bulk_create_ledger_deposit_entries(mock_ledger_deposit_body) assert res mock_logger.error.assert_not_called() mock_raise_service_error.assert_not_called() @patch('reserves_take.ows_ledger.error_handling.raise_service_error') @patch('reserves_take.ows_ledger.app_logger') def test_bulk_create_ledger_deposit_entries_failure( mock_logger, mock_raise_service_error, mock_ledger_deposit_body, ows_client_mock: OwsClientMock, ): """Test failure bulk creating ledger reserve taken entries.""" ows_client_mock.post( 'ows-ledger', '/ledger/bulk', json=mock_ledger_deposit_body, ).mock( return_value=httpx.Response( 400, json={'error': 'error'} ) ) res = bulk_create_ledger_deposit_entries(mock_ledger_deposit_body) assert res is None assert mock_logger.error.call_count == 2 mock_raise_service_error.assert_called_once_with( 'ERROR in POST /ledger/bulk', 'ows-ledger' ) @patch('reserves_take.ows_ledger.error_handling.raise_service_error') @patch('reserves_take.ows_ledger.app_logger') def test_bulk_create_ledger_reserve_taken_entries( mock_logger, mock_raise_service_error, mock_ledger_reserve_taken_body, ows_client_mock: OwsClientMock, ): """Test successfully bulk creating ledger reserve taken entries.""" ows_client_mock.post( 'ows-ledger', '/ledger-reserve-taken/bulk', json=mock_ledger_reserve_taken_body, ).mock( return_value=httpx.Response( 201, json={'message': 'OK'} ) ) res = bulk_create_ledger_reserve_taken_entries(mock_ledger_reserve_taken_body) assert res mock_logger.error.assert_not_called() mock_raise_service_error.assert_not_called() @patch('reserves_take.ows_ledger.error_handling.raise_service_error') @patch('reserves_take.ows_ledger.app_logger') def test_bulk_create_ledger_reserve_taken_entries_failure( mock_logger, mock_raise_service_error, mock_ledger_reserve_taken_body, ows_client_mock: OwsClientMock, ): """Test failure bulk creating ledger reserve taken entries.""" ows_client_mock.post( 'ows-ledger', '/ledger-reserve-taken/bulk', json=mock_ledger_reserve_taken_body, ).mock( return_value=httpx.Response( 400, json={'error': 'error'} ) ) res = bulk_create_ledger_reserve_taken_entries(mock_ledger_reserve_taken_body) assert res is None assert mock_logger.error.call_count == 2 mock_raise_service_error.assert_called_once_with( 'ERROR in POST /ledger-reserve-taken/bulk', 'ows-ledger' )