120 lines
3.6 KiB
Python
120 lines
3.6 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# This file is part of facho. The COPYRIGHT file at the top level of
|
|
# this repository contains the full copyright notices and license terms.
|
|
|
|
"""Tests for `facho` package."""
|
|
|
|
import pytest
|
|
# from datetime import datetime
|
|
import copy
|
|
|
|
from facho.fe import form
|
|
from facho.fe import form_xml
|
|
# from fixtures import *
|
|
|
|
from fixtures import (
|
|
simple_invoice,
|
|
simple_invoice_without_lines,
|
|
simple_credit_note_without_lines,
|
|
simple_debit_note_without_lines)
|
|
|
|
simple_invoice = simple_invoice
|
|
simple_invoice_without_lines = simple_invoice_without_lines
|
|
simple_credit_note_without_lines = simple_credit_note_without_lines
|
|
simple_debit_note_without_lines = simple_debit_note_without_lines
|
|
|
|
|
|
def test_import_DIANInvoiceXML():
|
|
try:
|
|
form_xml.DIANInvoiceXML
|
|
except AttributeError:
|
|
pytest.fail("unexpected not found")
|
|
|
|
|
|
def test_import_DIANDebitNoteXML():
|
|
try:
|
|
form_xml.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='productofacho',
|
|
# item=form.StandardItem(9999),
|
|
# price=form.Price(
|
|
# amount=form.Amount(100.0),
|
|
# type_code='01',
|
|
# type='x'
|
|
# ),
|
|
# tax=form.TaxTotal(
|
|
# subtotals=[
|
|
# form.TaxSubTotal(
|
|
# percent=19.0,
|
|
# )]),
|
|
# withholding=form.WithholdingTaxTotal(
|
|
# subtotals=[])
|
|
# ))
|
|
|
|
# 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'
|
|
|
|
|
|
# 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'
|
|
# ),
|
|
# tax=form.TaxTotal(
|
|
# subtotals=[
|
|
# form.TaxSubTotal(
|
|
# percent=19.0,
|
|
# )]),
|
|
# withholding=form.WithholdingTaxTotal(
|
|
# subtotals=[]),
|
|
# 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))
|
|
|
|
# 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'
|