diff --git a/tests/test_form_xml.py b/tests/test_form_xml.py index 74f8d9f..16e69b4 100644 --- a/tests/test_form_xml.py +++ b/tests/test_form_xml.py @@ -6,13 +6,13 @@ """Tests for `facho` package.""" import pytest -from datetime import datetime +# from datetime import datetime import copy from facho.fe import form from facho.fe import form_xml +# from fixtures import * -from fixtures import * def test_import_DIANInvoiceXML(): try: @@ -27,70 +27,80 @@ def test_import_DIANDebitNoteXML(): except AttributeError: pytest.fail("unexpected not found") + def test_import_DIANCreditNoteXML(): try: form_xml.DIANCreditNoteXML except AttributeError: pytest.fail("unexpected not found") + def test_allowance_charge_in_invoice(simple_invoice_without_lines): inv = copy.copy(simple_invoice_without_lines) inv.add_invoice_line(form.InvoiceLine( - quantity = form.Quantity(1, '94'), - description = 'producto facho', - item = form.StandardItem(9999), - price = form.Price( - amount = form.Amount(100.0), - type_code = '01', - type = 'x' + quantity=form.Quantity(1, '94'), + description='productofacho', + item=form.StandardItem(9999), + price=form.Price( + amount=form.Amount(100.0), + type_code='01', + type='x' ), - tax = form.TaxTotal( - subtotals = [ + tax=form.TaxTotal( + subtotals=[ form.TaxSubTotal( - percent = 19.0, - ) - ] + percent=19.0, + )] ) )) + inv.add_allowance_charge(form.AllowanceCharge(amount=form.Amount(19.0))) inv.calculate() - + xml = form_xml.DIANInvoiceXML(inv) assert xml.get_element_text('./cac:AllowanceCharge/cbc:ID') == '1' - assert xml.get_element_text('./cac:AllowanceCharge/cbc:ChargeIndicator') == 'true' - assert xml.get_element_text('./cac:AllowanceCharge/cbc:Amount') == '19.0' - assert xml.get_element_text('./cac:AllowanceCharge/cbc:BaseAmount') == '100.0' + assert xml.get_element_text( + './cac:AllowanceCharge/cbc:ChargeIndicator') == 'true' + assert xml.get_element_text( + './cac:AllowanceCharge/cbc:Amount') == '19.0' + assert xml.get_element_text( + './cac:AllowanceCharge/cbc:BaseAmount') == '100.0' + def test_allowance_charge_in_invoice_line(simple_invoice_without_lines): inv = copy.copy(simple_invoice_without_lines) inv.add_invoice_line(form.InvoiceLine( - quantity = form.Quantity(1, '94'), - description = 'producto facho', - item = form.StandardItem(9999), - price = form.Price( - amount = form.Amount(100.0), - type_code = '01', - type = 'x' + quantity=form.Quantity(1, '94'), + description='producto facho', + item=form.StandardItem(9999), + price=form.Price( + amount=form.Amount(100.0), + type_code='01', + type='x' ), - tax = form.TaxTotal( - subtotals = [ + tax=form.TaxTotal( + subtotals=[ form.TaxSubTotal( - percent = 19.0, - ) - ] + percent=19.0, + )] ), - allowance_charge = [ + allowance_charge=[ form.AllowanceChargeAsDiscount(amount=form.Amount(10.0)) ] )) inv.calculate() # se aplico descuento - assert inv.invoice_legal_monetary_total.line_extension_amount == form.Amount(90.0) - + assert inv.invoice_legal_monetary_total.line_extension_amount == ( + form.Amount(90.0)) + xml = form_xml.DIANInvoiceXML(inv) with pytest.raises(AttributeError): - assert xml.get_element_text('/fe:Invoice/cac:AllowanceCharge/cbc:ID') == '1' - xml.get_element_text('/fe:Invoice/cac:InvoiceLine/cac:AllowanceCharge/cbc:ID') == '1' - xml.get_element_text('/fe:Invoice/cac:InvoiceLine/cac:AllowanceCharge/cbc:BaseAmount') == '100.0' + assert xml.get_element_text( + '/fe:Invoice/cac:AllowanceCharge/cbc:ID') == '1' + xml.get_element_text( + '/fe:Invoice/cac:InvoiceLine/cac:AllowanceCharge/cbc:ID') == '1' + xml.get_element_text( + '/fe:Invoice/cac:InvoiceLine/cac:AllowanceCharge/cbc:BaseAmount' + ) == '100.0'