"""Test Ledger Accounting Run VAT handlers.""" from unittest.mock import patch from owsresponse import response from ledger.constants.constants import VAT_CATEGORIES_OLD @patch('ledger.blueprints.ledger_accounting_run_vat.logic') def test_get_contracts_count_by_vat_category(mock_logic, fixture_client): """Test get_ledger_accounting_run_vat_overview request.""" mock_response = { 'items': [ { 'vat_category': VAT_CATEGORIES_OLD.VAT_APPLIED, 'country_of_tax_residence': 'GBR', 'contract_count': 1, }, { 'vat_category': VAT_CATEGORIES_OLD.VAT_EXEMPT, 'country_of_tax_residence': None, 'contract_count': 1, }, ], 'total_count': 2, } mock_logic.get_ledger_accounting_run_vat_overview.return_value = response.Response( message=mock_response, status=200 ) res = fixture_client.get('/ledger-accounting-run-vat/accounting-period/1/overview') assert res.status_code == 200 assert res.json == mock_response mock_logic.get_ledger_accounting_run_vat_overview.assert_called_once() @patch('ledger.blueprints.ledger_accounting_run_vat.logic') def test_get_ledger_vat_list(mock_logic, fixture_client): """Test get_ledger_vat_list request.""" mock_logic.get_ledger_vat_list.return_value = response.Response( message='ok', status=200 ) res = fixture_client.get( '/ledger-accounting-run-vat/accounting-period/1/vat-category/vat_exempt/' ) assert res.status_code == 200 mock_logic.get_ledger_vat_list.assert_called_once() @patch('ledger.blueprints.ledger_accounting_run_vat.logic') def test_bulk_create_ledger_accounting_run_vat_entries(mock_logic, fixture_client): """Test endpoint passes request body to logic layer.""" mock_logic.bulk_create.return_value = response.Response(message='foo', status=201) res = fixture_client.post('ledger-accounting-run-vat/bulk', json=[]) assert res.status_code == 201 assert res.data == b'foo' mock_logic.bulk_create.assert_called_once_with([])