diff --git a/nfe.py b/nfse-example.py similarity index 70% rename from nfe.py rename to nfse-example.py index dc370c6..1c3cc81 100644 --- a/nfe.py +++ b/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"}, }, } ] diff --git a/pytrustnfe/nfse/natal/__init__.py b/pytrustnfe/nfse/natal/__init__.py index a96948d..cfc9ec5 100644 --- a/pytrustnfe/nfse/natal/__init__.py +++ b/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) diff --git a/tests/XMLs/natal_sent_xml.xml b/tests/XMLs/natal_sent_xml.xml new file mode 100644 index 0000000..22a56c4 --- /dev/null +++ b/tests/XMLs/natal_sent_xml.xml @@ -0,0 +1,13 @@ +123809070000190214399211UNICA12020-01-27911121.0020.0001.076209100Sistema NFSe2408102238090700001902143992SERVICOS DE TIAV AMINTAS3755SALA 32Lagoa NovaRN590758104132095554SUPORTE@EMAIL.COM.BRLEONIR128Lagoa NovaBH1231231313leonir@yahoo.com.br3159506z7+372qFhKwwj41AkJ3chbHEYGM=JgW5SbS50rDeJav88IiMdONT6wrKD1pom9otB3QfVllSzfe23olZBsAR6D1/XezBaqCd123yKTbN0o+WPGDaz6Qj+RiCC8Ezthv9Re3RZw5vFCaGGzjj5Rm+KwHoY5kfoK+EhZQKqMdLRzYesdI0f5B9RawM0R8c1XCIYNS6j/0=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== + \ No newline at end of file diff --git a/tests/test_nfse_natal.py b/tests/test_nfse_natal.py new file mode 100644 index 0000000..2c0a8b3 --- /dev/null +++ b/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) diff --git a/tests/test_nfse_paulistana.py b/tests/test_nfse_paulistana.py index a4a444b..75f4fea 100644 --- a/tests/test_nfse_paulistana.py +++ b/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"