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,21 +124,17 @@ class FachoXML:
self.extensions = []
def add_extension(self, extension):
self.extensions.append(extension)
def attach_extensions(self):
root_tag = self.builder.get_tag(self.root)
# construir las extensiones o adicionar en caso de indicar
for extension in self.extensions:
xpath, elements = extension.build(self)
if isinstance(elements, str):
elem = self.set_element('/'+ root_tag + xpath, elements)
else:
for new_element in elements:
elem = self.find_or_create_element('/' + root_tag + xpath)
self.builder.append(elem, new_element)
xpath, elements = extension.build(self)
if isinstance(elements, str):
elem = self.set_element('/'+ root_tag + xpath, elements)
else:
for new_element in elements:
elem = self.find_or_create_element('/' + root_tag + xpath)
self.builder.append(elem, new_element)
def fragment(self, xpath, append=False):
nodes = xpath.split('/')
nodes.pop()

View File

@ -17,11 +17,11 @@ def test_xmlsigned_build(monkeypatch):
xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1')
xml.add_extension(signer)
with monkeypatch.context() as 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')
assert elem is not None
@ -35,11 +35,11 @@ def test_xmlsigned_with_passphrase_build(monkeypatch):
xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1')
xml.add_extension(signer)
with monkeypatch.context() as 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')
assert elem is not None
@ -51,6 +51,5 @@ def test_dian_extension_software_security_code():
xml = fe.FeXML('Invoice',
'http://www.dian.gov.co/contratos/facturaelectronica/v1')
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')
assert content is not None

View File

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