"""Tests for the Odoo XML builder.""" from decimal import Decimal from odoo_ocr.config import Settings from odoo_ocr.pipeline.xml_builder import build_odoo_xml from odoo_ocr.schemas import ExtractedInvoice, InvoiceLineItem, ReviewResult def test_build_odoo_xml() -> None: settings = Settings() invoice = ExtractedInvoice( vendor_name="Acme Supplies", vendor_vat="GB123456789", invoice_number="INV-2024-001", invoice_date="2024-05-01", due_date="2024-06-01", currency="EUR", payment_terms="Net 30", line_items=[ InvoiceLineItem( description="Consulting services", quantity=Decimal("10.0"), unit_price=Decimal("100.00"), total_price=Decimal("1000.00"), tax_rate=Decimal("20"), ) ], subtotal=Decimal("1000.00"), tax_total=Decimal("200.00"), total=Decimal("1200.00"), ) review = ReviewResult(valid=True, confidence=0.95) xml = build_odoo_xml(invoice, review, settings) assert xml.startswith(" None: settings = Settings() invoice = ExtractedInvoice( vendor_name="X", invoice_number="1", invoice_date="2024-01-01", line_items=[], subtotal=Decimal("0"), tax_total=Decimal("0"), total=Decimal("0"), ) review = ReviewResult(valid=False, confidence=0.80) xml = build_odoo_xml(invoice, review, settings) assert "HUMAN REVIEW ADVISED" in xml