diff --git a/pytrustnfe/test/XMLs/paulistana_canc.xml b/pytrustnfe/test/XMLs/paulistana_canc.xml new file mode 100644 index 0000000..8aa75ea --- /dev/null +++ b/pytrustnfe/test/XMLs/paulistana_canc.xml @@ -0,0 +1 @@ +false1305Assinatura de cancelamento da NFS-e incorreta.512382446APRMJR diff --git a/pytrustnfe/test/XMLs/paulistana_canc_errado.xml b/pytrustnfe/test/XMLs/paulistana_canc_errado.xml new file mode 100644 index 0000000..2f47a94 --- /dev/null +++ b/pytrustnfe/test/XMLs/paulistana_canc_errado.xml @@ -0,0 +1 @@ +false1305Assinatura de cancelamento da NFS-e incorreta.51212382446APR9QMJR diff --git a/pytrustnfe/test/XMLs/paulistana_canc_ok.xml b/pytrustnfe/test/XMLs/paulistana_canc_ok.xml new file mode 100644 index 0000000..5caa8a6 --- /dev/null +++ b/pytrustnfe/test/XMLs/paulistana_canc_ok.xml @@ -0,0 +1 @@ +true diff --git a/pytrustnfe/test/test_nfse_paulistana.py b/pytrustnfe/test/test_nfse_paulistana.py index a3287f5..2ebd568 100644 --- a/pytrustnfe/test/test_nfse_paulistana.py +++ b/pytrustnfe/test/test_nfse_paulistana.py @@ -5,6 +5,7 @@ import os.path import unittest from pytrustnfe.certificado import Certificado from pytrustnfe.nfse.paulistana import envio_lote_rps +from pytrustnfe.nfse.paulistana import cancelamento_nfe class test_nfse_paulistana(unittest.TestCase): @@ -68,3 +69,52 @@ class test_nfse_paulistana(unittest.TestCase): retorno['object'].ChaveNFeRPS.ChaveNFe.NumeroNFe, 446) self.assertEqual( retorno['object'].ChaveNFeRPS.ChaveRPS.NumeroRPS, 6) + + def _get_cancelamento(self): + return { + 'cnpj_remetente': '123', + 'assinatura': 'assinatura', + 'numero_nfse': '456', + 'inscricao_municipal': '654', + 'codigo_verificacao': '789', + } + + def test_cancelamento_nfse_ok(self): + pfx_source = open(os.path.join(self.caminho, 'teste.pfx'), 'r').read() + pfx = Certificado(pfx_source, '123456') + 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() + + with mock.patch('pytrustnfe.nfse.paulistana.get_authenticated_client') as client: + retorno = mock.MagicMock() + client.return_value = retorno + retorno.service.CancelamentoNFe.return_value = xml_return + + retorno = cancelamento_nfe(pfx, cancelamento=cancelamento) + + self.assertEqual(retorno['received_xml'], xml_return) + self.assertEqual(retorno['object'].Cabecalho.Sucesso, True) + + def test_cancelamento_nfse_com_erro(self): + pfx_source = open(os.path.join(self.caminho, 'teste.pfx'), 'r').read() + pfx = Certificado(pfx_source, '123456') + 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() + + with mock.patch('pytrustnfe.nfse.paulistana.get_authenticated_client') as client: + retorno = mock.MagicMock() + client.return_value = retorno + retorno.service.CancelamentoNFe.return_value = xml_return + + retorno = cancelamento_nfe(pfx, cancelamento=cancelamento) + + self.assertEqual(retorno['received_xml'], xml_return) + self.assertEqual(retorno['object'].Cabecalho.Sucesso, False) + self.assertEqual( + retorno['object'].Erro.ChaveNFe.NumeroNFe, 446)