"""Test ows-ledger requests.""" from unittest.mock import patch import httpx from owsclient.test import OwsClientMock from commit_royalties.ows_ledger import bulk_create_ledger_entries @patch('commit_royalties.ows_ledger.requests.raise_service_error') @patch('commit_royalties.ows_ledger.app_logger') def test_bulk_create_ledger_entries_success( mock_logger, mock_raise_service_error, mock_ledger_account, mock_ledger_deposit, ows_client_mock: OwsClientMock ): """Test successfully bulk creating ledger entries.""" post_body = [mock_ledger_account, mock_ledger_deposit] ows_client_mock.post( 'ows-ledger', '/ledger/bulk', json=post_body, ).mock(return_value=httpx.Response(201, json={'message': 'OK'})) res = bulk_create_ledger_entries(post_body) assert res mock_logger.error.assert_not_called() mock_raise_service_error.assert_not_called() @patch('commit_royalties.ows_ledger.requests.raise_service_error') @patch('commit_royalties.ows_ledger.app_logger') def test_bulk_create_ledger_entries_failure( mock_logger, mock_raise_service_error, mock_ledger_account, mock_ledger_deposit, ows_client_mock: OwsClientMock ): """Test failure bulk creating ledger entries.""" post_body = [mock_ledger_account, mock_ledger_deposit] ows_client_mock.post( 'ows-ledger', '/ledger/bulk', json=post_body, ).mock(return_value=httpx.Response(400, text='error')) res = bulk_create_ledger_entries(post_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' )