Browse Source

Remoção da classe de validação do esquema e deixando somente como função

pull/230/head
maiconkkl 7 years ago
parent
commit
71dbbe456a
  1. 16
      pytrustnfe/nfe/__init__.py
  2. 53
      pytrustnfe/xml/validate.py

16
pytrustnfe/nfe/__init__.py

@ -9,7 +9,6 @@ from lxml import etree
from .patch import has_patch from .patch import has_patch
from .assinatura import Assinatura from .assinatura import Assinatura
from pytrustnfe.xml import render_xml, sanitize_response from pytrustnfe.xml import render_xml, sanitize_response
from pytrustnfe.xml.validate import ValidarXml
from pytrustnfe.utils import gerar_chave, ChaveNFe from pytrustnfe.utils import gerar_chave, ChaveNFe
from pytrustnfe.Servidores import localizar_url from pytrustnfe.Servidores import localizar_url
from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key
@ -21,9 +20,6 @@ from requests import Session
from zeep import Client from zeep import Client
from zeep.transports import Transport from zeep.transports import Transport
# Xml schema validation class
validar_xml = ValidarXml()
def _generate_nfe_id(**kwargs): def _generate_nfe_id(**kwargs):
for item in kwargs['NFes']: for item in kwargs['NFes']:
@ -129,11 +125,7 @@ def xml_autorizar_nfe(certificado, **kwargs):
def autorizar_nfe(certificado, **kwargs): # Assinar def autorizar_nfe(certificado, **kwargs): # Assinar
if "xml" not in kwargs: if "xml" not in kwargs:
kwargs['xml'] = xml_autorizar_nfe(certificado, **kwargs) kwargs['xml'] = xml_autorizar_nfe(certificado, **kwargs)
erros_esquemas = validar_xml.valida_nfe(kwargs['xml'])
if erros_esquemas is not False:
return erros_esquemas
else:
return _send(certificado, 'NfeAutorizacao', **kwargs)
return _send(certificado, 'NfeAutorizacao', **kwargs)
def xml_retorno_autorizar_nfe(certificado, **kwargs): def xml_retorno_autorizar_nfe(certificado, **kwargs):
@ -225,11 +217,7 @@ def xml_consulta_distribuicao_nfe(certificado, **kwargs): # Assinar
def consulta_distribuicao_nfe(certificado, **kwargs): def consulta_distribuicao_nfe(certificado, **kwargs):
if "xml" not in kwargs: if "xml" not in kwargs:
kwargs['xml'] = xml_consulta_distribuicao_nfe(certificado, **kwargs) kwargs['xml'] = xml_consulta_distribuicao_nfe(certificado, **kwargs)
erros_esquemas = validar_xml.valida_distribuicao(kwargs['xml'])
if erros_esquemas is not False:
return erros_esquemas
else:
return _send_v310(certificado, **kwargs)
return _send_v310(certificado, **kwargs)
def _send_v310(certificado, **kwargs): def _send_v310(certificado, **kwargs):

53
pytrustnfe/xml/validate.py

@ -6,30 +6,31 @@ import os
from lxml import etree from lxml import etree
PATH = os.path.dirname(os.path.abspath(__file__))
class ValidarXml:
PATH = os.path.dirname(os.path.abspath(__file__))
def valida_nfe(self, xml):
xsd = 'enviNFe_v4.00.xsd'
erros = self.valida_esquema(xml, xsd)
if len(erros) > 0:
return {'ErrosEsquemas': "\n".join(erros)}
else:
return False
def valida_distribuicao(self, xml):
xsd = 'distDFeInt_v1.01.xsd'
erros = self.valida_esquema(xml, xsd)
if len(erros) >0:
return {'ErrosEsquemas': "\n".join(erros)}
else:
return False
def valida_esquema(self, xml, xsd_name):
xsd = os.path.join(self.PATH, 'schemas/', xsd_name)
xml_etree = etree.fromstring(xml)
esquema = etree.XMLSchema(etree.parse(xsd))
esquema.validate(xml_etree)
erros = [x.message for x in esquema.error_log]
return erros
def valida_nfe(xml):
xsd = 'enviNFe_v4.00.xsd'
erros = valida_esquema(xml, xsd)
if len(erros) > 0:
return {'ErrosEsquemas': "\n".join(erros)}
else:
return False
def valida_distribuicao(xml):
xsd = 'distDFeInt_v1.01.xsd'
erros = valida_esquema(xml, xsd)
if len(erros) >0:
return {'ErrosEsquemas': "\n".join(erros)}
else:
return False
def valida_esquema(xml, xsd_name):
xsd = os.path.join(PATH, 'schemas/', xsd_name)
xml_etree = etree.fromstring(xml)
esquema = etree.XMLSchema(etree.parse(xsd))
esquema.validate(xml_etree)
erros = [x.message for x in esquema.error_log]
return erros
Loading…
Cancel
Save