Browse Source

add tests natal

pull/262/head
Gabriela Cavalcante da Silva 6 years ago
parent
commit
ecea3543ad
  1. 32
      nfse-example.py
  2. 1
      pytrustnfe/nfse/natal/__init__.py
  3. 13
      tests/XMLs/natal_sent_xml.xml
  4. 80
      tests/test_nfse_natal.py
  5. 18
      tests/test_nfse_paulistana.py

32
nfe.py → nfse-example.py

@ -6,7 +6,7 @@ from pytrustnfe.certificado import Certificado
rps_list = [
{
"numero": "E2143992638620191226",
"numero": "1",
"serie": "UNICA",
"tipo_rps": "1",
"data_emissao": "2020-01-279",
@ -20,35 +20,35 @@ rps_list = [
"base_calculo": "0.00",
"codigo_servico": "01.07",
"cnae_servico": "6209100",
"descricao": "Sistema SGP|1.0000|220.00|220.00#",
"descricao": "Sistema NFSe",
"codigo_municipio": "2408102",
},
"prestador": {
"cnpj": "23809070000190",
"inscricao_municipal": "2143992",
"razao_social": "TSMX SERVICOS DE TI EIRELI",
"fantasia": "TSMX",
"endereco": "AV AMINTAS BARROS",
"numero": "3700",
"complemento": "SALA 1907 BLOCO A",
"razao_social": "SERVICOS DE TI",
"fantasia": "SERVICOS DE TI",
"endereco": "AV AMINTAS",
"numero": "3755",
"complemento": "SALA 32",
"bairro": "Lagoa Nova",
"codigo_municipio": "2408102",
"uf": "RN",
"cep": "59075810",
"telefone": "4132095554",
"email": "SUPORTE@CONTABILIZEI.COM.BR",
"email": "SUPORTE@EMAIL.COM.BR",
},
"tomador": {
"cpf_cnpj": "01812418000166",
"razao_social": "LEONIR NETO",
"endereco": "RUA IRMÃO GROBEIRO",
"numero": "14",
"bairro": "CRUZEIRO",
"razao_social": "LEONIR",
"endereco": "RUA GROBEIRO",
"numero": "128",
"bairro": "Lagoa Nova",
"cidade": "3159506",
"uf": "MG",
"cep": "35225000",
"email": "leonirneto@uol.com.br",
"orgao_gerador": {"codigo_municipio"},
"uf": "BH",
"cep": "1231231313",
"email": "leonir@yahoo.com.br",
"orgao_gerador": {"codigo_municipio": "3159506"},
},
}
]

1
pytrustnfe/nfse/natal/__init__.py

@ -53,6 +53,7 @@ def xml_recepcionar_lote_rps(certificado, **kwargs):
def recepcionar_lote_rps(certificado, **kwargs):
if "xml" not in kwargs:
kwargs["xml"] = xml_recepcionar_lote_rps(certificado, **kwargs)
print(kwargs["xml"])
return {"sent_xml": kwargs["xml"]}
# return _send(certificado, 'recepcionarLoteRps', **kwargs)

13
tests/XMLs/natal_sent_xml.xml

@ -0,0 +1,13 @@
<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"><LoteRps Id="1"><NumeroLote>1</NumeroLote><Cnpj>23809070000190</Cnpj><InscricaoMunicipal>2143992</InscricaoMunicipal><QuantidadeRps>1</QuantidadeRps><ListaRps><Rps><InfRps Id="1"><IdentificacaoRps><Numero>1</Numero><Serie>UNICA</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2020-01-279</DataEmissao><NaturezaOperacao>1</NaturezaOperacao><RegimeEspecialTributacao>1</RegimeEspecialTributacao><OptanteSimplesNacional>1</OptanteSimplesNacional><IncentivadorCultural>2</IncentivadorCultural><Servico><Valores><ValorServicos>1.00</ValorServicos><IssRetido>2</IssRetido><BaseCalculo>0.00</BaseCalculo></Valores><ItemListaServico>01.07</ItemListaServico><CodigoCnae>6209100</CodigoCnae><Discriminacao>Sistema NFSe</Discriminacao><CodigoMunicipio>2408102</CodigoMunicipio></Servico><PrestadorServico><IdentificacaoPrestador><Cnpj>23809070000190</Cnpj><InscricaoMunicipal>2143992</InscricaoMunicipal></IdentificacaoPrestador><NomeFantasia>SERVICOS DE TI</NomeFantasia><Endereco><Endereco>AV AMINTAS</Endereco><Numero>3755</Numero><Complemento>SALA 32</Complemento><Bairro>Lagoa Nova</Bairro><Uf>RN</Uf><Cep>59075810</Cep></Endereco><Contato><Telefone>4132095554</Telefone><Email>SUPORTE@EMAIL.COM.BR</Email></Contato></PrestadorServico><TomadorServico><RazaoSocial>LEONIR</RazaoSocial><Endereco><Numero>128</Numero><Bairro>Lagoa Nova</Bairro><Uf>BH</Uf><Cep>1231231313</Cep></Endereco><Contato><Telefone>leonir@yahoo.com.br</Telefone></Contato><OrgaoGerador><CodigoMunicipio>3159506</CodigoMunicipio></OrgaoGerador></TomadorServico></InfRps></Rps></ListaRps></LoteRps><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>z7+372qFhKwwj41AkJ3chbHEYGM=</DigestValue></Reference></SignedInfo><SignatureValue>JgW5SbS50rDeJav88IiMdONT6wrKD1pom9otB3QfVllSzfe23olZBsAR6D1/XezBaqCd123yKTbN0o+WPGDaz6Qj+RiCC8Ezthv9Re3RZw5vFCaGGzjj5Rm+KwHoY5kfoK+EhZQKqMdLRzYesdI0f5B9RawM0R8c1XCIYNS6j/0=</SignatureValue><KeyInfo><X509Data><X509Certificate>MIICMTCCAZqgAwIBAgIQfYOsIEVuAJ1FwwcTrY0t1DANBgkqhkiG9w0BAQUFADBX
MVUwUwYDVQQDHkwAewA1ADkARgAxAEUANAA2ADEALQBEAEQARQA1AC0ANABEADIA
RgAtAEEAMAAxAEEALQA4ADMAMwAyADIAQQA5AEUAQgA4ADMAOAB9MB4XDTE1MDYx
NTA1NDc1N1oXDTE2MDYxNDExNDc1N1owVzFVMFMGA1UEAx5MAHsANQA5AEYAMQBF
ADQANgAxAC0ARABEAEUANQAtADQARAAyAEYALQBBADAAMQBBAC0AOAAzADMAMgAy
AEEAOQBFAEIAOAAzADgAfTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAk41G
nqXXLaiOC/y0/cA4tbS+NZCqI+x4EsztgDFvPPlHstiVYcLRkni4i93gK9zoC6g0
mh66HMVzAfE8vRNwW5b7m6nWS1SiHBon7/Mqsw4MIq3SC+J/fTbKpqwyfAuH2YZl
AiQuQc85fyllAMLh2WrA7JgOLR/5tF3kLtpbHdECAwEAATANBgkqhkiG9w0BAQUF
AAOBgQArdh+RyT6VxKGsXk1zhHsgwXfToe6GpTF4W8PHI1+T0WIsNForDhvst6nm
QtgAhuZM9rxpOJuNKc+pM29EixpAiZZiRMCSWEItNyEVdUIi+YnKBcAHd88TwO86
d126MWQ2O8cu5W1VoDp7hYBYKOnLbYi11/StO+0rzK+oPYAvIw==
</X509Certificate></X509Data></KeyInfo></Signature></EnviarLoteRpsEnvio>

80
tests/test_nfse_natal.py

@ -0,0 +1,80 @@
# coding=utf-8
import mock
import os.path
import unittest
from pytrustnfe.certificado import Certificado
from pytrustnfe.nfse.natal import recepcionar_lote_rps
class test_nfse_natal(unittest.TestCase):
caminho = os.path.dirname(__file__)
def _get_nfse(self):
rps_list = [
{
"numero": "1",
"serie": "UNICA",
"tipo_rps": "1",
"data_emissao": "2020-01-279",
"natureza_operacao": "1",
"regime_tributacao": "1",
"optante_simples": "1",
"incentivador_cultural": "2",
"servico": {
"valor_servico": "1.00",
"iss_retido": "2",
"base_calculo": "0.00",
"codigo_servico": "01.07",
"cnae_servico": "6209100",
"descricao": "Sistema NFSe",
"codigo_municipio": "2408102",
},
"prestador": {
"cnpj": "23809070000190",
"inscricao_municipal": "2143992",
"razao_social": "SERVICOS DE TI",
"fantasia": "SERVICOS DE TI",
"endereco": "AV AMINTAS",
"numero": "3755",
"complemento": "SALA 32",
"bairro": "Lagoa Nova",
"codigo_municipio": "2408102",
"uf": "RN",
"cep": "59075810",
"telefone": "4132095554",
"email": "SUPORTE@EMAIL.COM.BR",
},
"tomador": {
"cpf_cnpj": "01812418000166",
"razao_social": "LEONIR",
"endereco": "RUA GROBEIRO",
"numero": "128",
"bairro": "Lagoa Nova",
"cidade": "3159506",
"uf": "BH",
"cep": "1231231313",
"email": "leonir@yahoo.com.br",
"orgao_gerador": {"codigo_municipio": "3159506"},
},
}
]
nfse = {
"numero_lote": "1",
"cnpj_prestador": "23809070000190",
"inscricao_municipal": "2143992",
"lista_rps": rps_list,
}
return nfse
def test_recepcionar_lote_rps(self):
pfx_source = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
pfx = Certificado(pfx_source, "123456")
nfse = self._get_nfse()
path = os.path.join(os.path.dirname(__file__), "XMLs")
sent_xml = open(os.path.join(path, "natal_sent_xml.xml"), "r").read()
retorno = recepcionar_lote_rps(pfx, nfse=nfse)
self.assertEqual(retorno["sent_xml"], sent_xml)

18
tests/test_nfse_paulistana.py

@ -55,8 +55,7 @@ class test_nfse_paulistana(unittest.TestCase):
nfse = self._get_nfse()
path = os.path.join(os.path.dirname(__file__), "XMLs")
xml_return = open(os.path.join(
path, "paulistana_resultado.xml"), "r").read()
xml_return = open(os.path.join(path, "paulistana_resultado.xml"), "r").read()
with mock.patch(
"pytrustnfe.nfse.paulistana.get_authenticated_client"
@ -69,10 +68,8 @@ class test_nfse_paulistana(unittest.TestCase):
self.assertEqual(retorno["received_xml"], xml_return)
self.assertEqual(retorno["object"].Cabecalho.Sucesso, True)
self.assertEqual(
retorno["object"].ChaveNFeRPS.ChaveNFe.NumeroNFe, 446)
self.assertEqual(
retorno["object"].ChaveNFeRPS.ChaveRPS.NumeroRPS, 6)
self.assertEqual(retorno["object"].ChaveNFeRPS.ChaveNFe.NumeroNFe, 446)
self.assertEqual(retorno["object"].ChaveNFeRPS.ChaveRPS.NumeroRPS, 6)
def test_nfse_signature(self):
pfx_source = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
@ -80,8 +77,7 @@ class test_nfse_paulistana(unittest.TestCase):
nfse = self._get_nfse()
path = os.path.join(os.path.dirname(__file__), "XMLs")
xml_sent = open(os.path.join(
path, "paulistana_signature.xml"), "r").read()
xml_sent = open(os.path.join(path, "paulistana_signature.xml"), "r").read()
with mock.patch(
"pytrustnfe.nfse.paulistana.get_authenticated_client"
@ -108,8 +104,7 @@ class test_nfse_paulistana(unittest.TestCase):
cancelamento = self._get_cancelamento()
path = os.path.join(os.path.dirname(__file__), "XMLs")
xml_return = open(os.path.join(
path, "paulistana_canc_ok.xml"), "r").read()
xml_return = open(os.path.join(path, "paulistana_canc_ok.xml"), "r").read()
with mock.patch(
"pytrustnfe.nfse.paulistana.get_authenticated_client"
@ -129,8 +124,7 @@ class test_nfse_paulistana(unittest.TestCase):
cancelamento = self._get_cancelamento()
path = os.path.join(os.path.dirname(__file__), "XMLs")
xml_return = open(os.path.join(
path, "paulistana_canc_errado.xml"), "r").read()
xml_return = open(os.path.join(path, "paulistana_canc_errado.xml"), "r").read()
with mock.patch(
"pytrustnfe.nfse.paulistana.get_authenticated_client"

Loading…
Cancel
Save