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