facho/facho.py (FachoXML.attach_extension): se retira
FossilOrigin-Name: 5e1a1e394fe0b3d5387a58dbc6c00cff03903718aeb5ff367d71c777ef9baa45
This commit is contained in:
parent
04174317eb
commit
ee30ad276a
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
Loading…
Reference in New Issue
Block a user