"""Test Ledger Accounting Run Balance handlers.""" from unittest.mock import patch from owsresponse import response @patch( 'ledger.blueprints.ledger_accounting_run_balance' '.get_ledger_acc_run_balance_by_period_id' ) def test_get_ledger_acc_run_balance_by_acc_period_id(mock_logic, fixture_client): """Test get_ledger_acc_run_balance_by_period_id request.""" mock_logic.return_value = response.Response(message='ok', status=200) res = fixture_client.get( '/ledger-accounting-run-balance/accounting-period/1/vat-category/vat_exempt/' ) assert res.status_code == 200 mock_logic.assert_called_once() @patch( 'ledger.blueprints.ledger_accounting_run_balance' '.get_ledger_accounting_run_balances_contract_count_dataloader' ) def test_post_contract_count_dataloader_handler(mock_logic, fixture_client): """Test contract count dataloader handler.""" mock_logic.return_value = response.Response( [{'data': {'accounting_run_id': 1, 'contract_count': 2}}], status=200 ) res = fixture_client.post( '/ledger-accounting-run-balance/contract-count/dataloader', json=[1] ) assert res.status_code == 200 assert res.json == [{'data': {'accounting_run_id': 1, 'contract_count': 2}}] mock_logic.assert_called_once_with([1]) @patch( 'ledger.blueprints.ledger_accounting_run_balance' '.get_ledger_accounting_run_balances_contract_count_dataloader' ) @patch( 'ledger.blueprints.ledger_accounting_run_balance' '.flask_request.verify_rules_access_standalone' ) def test_post_contract_count_dataloader_handler_authorization_failure( mock_verify, mock_logic, fixture_client ): """Test contract count dataloader handler when authorization fails.""" mock_verify.return_value = False res = fixture_client.post( '/ledger-accounting-run-balance/contract-count/dataloader', json=[1] ) assert res.status_code == 403 assert res.json['message'] == 'Unauthorized' assert mock_logic.call_count == 0