facho/facho.py (FachoXML.attach_extension): se retira

FossilOrigin-Name: 5e1a1e394fe0b3d5387a58dbc6c00cff03903718aeb5ff367d71c777ef9baa45
This commit is contained in:
bit4bit@riseup.net 2020-05-28 15:03:21 +00:00
parent 04174317eb
commit ee30ad276a
3 changed files with 15 additions and 23 deletions

View File

@ -124,13 +124,9 @@ class FachoXML:
self.extensions = [] self.extensions = []
def add_extension(self, extension): def add_extension(self, extension):
self.extensions.append(extension)
def attach_extensions(self):
root_tag = self.builder.get_tag(self.root) root_tag = self.builder.get_tag(self.root)
# construir las extensiones o adicionar en caso de indicar # construir las extensiones o adicionar en caso de indicar
for extension in self.extensions:
xpath, elements = extension.build(self) xpath, elements = extension.build(self)
if isinstance(elements, str): if isinstance(elements, str):
elem = self.set_element('/'+ root_tag + xpath, elements) elem = self.set_element('/'+ root_tag + xpath, elements)

View File

@ -17,11 +17,11 @@ def test_xmlsigned_build(monkeypatch):
xml = fe.FeXML('Invoice', xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1') 'http://www.dian.gov.co/contratos/facturaelectronica/v1')
xml.add_extension(signer)
with monkeypatch.context() as m: with monkeypatch.context() as m:
helpers.mock_urlopen(m) helpers.mock_urlopen(m)
xml.attach_extensions() xml.add_extension(signer)
elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature') elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature')
assert elem is not None assert elem is not None
@ -35,11 +35,11 @@ def test_xmlsigned_with_passphrase_build(monkeypatch):
xml = fe.FeXML('Invoice', xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1') 'http://www.dian.gov.co/contratos/facturaelectronica/v1')
xml.add_extension(signer)
with monkeypatch.context() as m: with monkeypatch.context() as m:
helpers.mock_urlopen(m) helpers.mock_urlopen(m)
xml.attach_extensions() xml.add_extension(signer)
elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature') elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature')
assert elem is not None assert elem is not None
@ -51,6 +51,5 @@ def test_dian_extension_software_security_code():
xml = fe.FeXML('Invoice', xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1') 'http://www.dian.gov.co/contratos/facturaelectronica/v1')
xml.add_extension(security_code) xml.add_extension(security_code)
xml.attach_extensions()
content = xml.get_element_text('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:SoftwareSecurityCode') content = xml.get_element_text('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:SoftwareSecurityCode')
assert content is not None assert content is not None

View File

@ -96,7 +96,6 @@ def test_invoicesimple_build_with_cufe(simple_invoice):
xml = form.DIANInvoiceXML(simple_invoice) xml = form.DIANInvoiceXML(simple_invoice)
cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice) cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice)
xml.add_extension(cufe_extension) xml.add_extension(cufe_extension)
xml.attach_extensions()
cufe = xml.get_element_text('/fe:Invoice/cbc:UUID') cufe = xml.get_element_text('/fe:Invoice/cbc:UUID')
assert cufe != '' assert cufe != ''
@ -108,12 +107,12 @@ def test_invoicesimple_xml_signed(monkeypatch, simple_invoice):
xml = form.DIANInvoiceXML(simple_invoice) xml = form.DIANInvoiceXML(simple_invoice)
signer = fe.DianXMLExtensionSigner('./tests/example.p12') signer = fe.DianXMLExtensionSigner('./tests/example.p12')
xml.add_extension(signer)
with monkeypatch.context() as m: with monkeypatch.context() as m:
import helpers import helpers
helpers.mock_urlopen(m) helpers.mock_urlopen(m)
xml.attach_extensions() xml.add_extension(signer)
elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature') elem = xml.find_or_create_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/ds:Signature')
assert elem.text is not None assert elem.text is not None
@ -144,7 +143,6 @@ def test_invoice_profileexecutionid(simple_invoice):
xml_invoice = form.DIANInvoiceXML(simple_invoice) xml_invoice = form.DIANInvoiceXML(simple_invoice)
cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice) cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice)
xml_invoice.add_extension(cufe_extension) xml_invoice.add_extension(cufe_extension)
xml_invoice.attach_extensions()
id_ = xml_invoice.get_element_text('/fe:Invoice/cbc:ProfileExecutionID', format_=int) id_ = xml_invoice.get_element_text('/fe:Invoice/cbc:ProfileExecutionID', format_=int)
assert id_ == 2 assert id_ == 2
@ -204,7 +202,6 @@ def test_invoice_cufe(simple_invoice_without_lines):
clave_tecnica = '693ff6f2a553c3646a063436fd4dd9ded0311471' clave_tecnica = '693ff6f2a553c3646a063436fd4dd9ded0311471'
) )
xml_invoice.add_extension(cufe_extension) xml_invoice.add_extension(cufe_extension)
xml_invoice.attach_extensions()
cufe = xml_invoice.get_element_text('/fe:Invoice/cbc:UUID') cufe = xml_invoice.get_element_text('/fe:Invoice/cbc:UUID')
# RESOLUCION 004: pagina 689 # RESOLUCION 004: pagina 689
assert cufe == '8bb918b19ba22a694f1da11c643b5e9de39adf60311cf179179e9b33381030bcd4c3c3f156c506ed5908f9276f5bd9b4' assert cufe == '8bb918b19ba22a694f1da11c643b5e9de39adf60311cf179179e9b33381030bcd4c3c3f156c506ed5908f9276f5bd9b4'