Skip to content

Commit 2b1f153

Browse files
trabalho em desenvolvimento
1 parent 327b2d2 commit 2b1f153

File tree

5 files changed

+37
-13
lines changed

5 files changed

+37
-13
lines changed

atm_averba_cte/__manifest__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"depends": [
1414
"atm_averba_base",
1515
"l10n_br_fiscal_edi",
16-
"l10n_br_cte",
1716
],
1817
"data": [
1918
"views/document_view.xml",

atm_averba_mdfe/__manifest__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"depends": [
1414
"atm_averba_cte",
1515
"l10n_br_fiscal_edi",
16-
"l10n_br_mdfe",
1716
],
1817
"data": [
1918
"views/document_view.xml",

atm_averba_mdfe/models/document.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,25 @@ def mdfe_cancel(self):
195195
)
196196
% (document.display_name, document.atm_averba_endorsement_state)
197197
)
198-
xml_content = self._get_mdfe_event(document, "2")
199-
if not xml_content:
200-
raise UserError(_("Não encontrei o evento de cancelamento."))
201-
202-
content = self._post_mdfe_to_atm(xml_content.encode("utf-8"))
198+
try:
199+
evento_assinado_bytes, soap_bytes = self._get_mdfe_event_files(
200+
document, "2"
201+
)
202+
except UserError:
203+
xml_content = self._get_mdfe_event(document, "2")
204+
if not xml_content:
205+
raise UserError(_("Não encontrei o evento de cancelamento."))
206+
content = self._post_mdfe_to_atm(
207+
xml_content.encode("utf-8"), content_type="application/xml"
208+
)
209+
self.env["atm.averba.event"].create_event_mdfe(
210+
document, content, cancel=True
211+
)
212+
continue
213+
proc_bytes = self.build_proc_evento_mdfe_v3(
214+
evento_assinado_bytes, soap_bytes, normalize_seq=True
215+
)
216+
content = self._post_mdfe_to_atm(proc_bytes, content_type="application/xml")
203217
self.env["atm.averba.event"].create_event_mdfe(
204218
document, content, cancel=True
205219
)
@@ -208,6 +222,8 @@ def _get_mdfe_event(self, document, type_string):
208222
event = self.env["l10n_br_fiscal.event"].search(
209223
[("document_id", "=", document.id), ("type", "=", type_string)], limit=1
210224
)
225+
if not event:
226+
raise UserError(_("Não encontrei evento para este documento."))
211227
xml_file = event.file_request_id or event.file_response_id
212228
if not xml_file:
213229
raise UserError(_("Não encontrei evento para este documento."))

atm_averba_mdfe/tests/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# from . import test_atm_averba_mdfe
1+
from . import test_atm_averba_mdfe

atm_averba_mdfe/tests/test_atm_averba_mdfe.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from datetime import datetime
55
from unittest import mock
6+
from unittest.mock import MagicMock
67

78
import requests
89

@@ -34,7 +35,13 @@ def text(self):
3435

3536

3637
def mocked_token_ok(*args, **kwargs):
37-
return MockResponse({"token": "ABC"}, 200, True)
38+
mock_res = MagicMock()
39+
mock_res.status_code = 200
40+
mock_res.raise_for_status.return_value = None
41+
mock_res.json.return_value = {"Bearer": "ABC"}
42+
mock_res.text = '{"Bearer":"ABC"}'
43+
mock_res.content = b'{"Bearer":"ABC"}'
44+
return mock_res
3845

3946

4047
def mocked_mdfe_close_ok(*args, **kwargs):
@@ -126,7 +133,6 @@ def test_mdfe_close_success(self, mock_build_proc, mock_post):
126133
evt = self.env["atm.averba.event"].search(
127134
[
128135
("document_id", "=", self.fiscal_document.id),
129-
("action_type", "=", "close"),
130136
],
131137
limit=1,
132138
order="id desc",
@@ -156,8 +162,9 @@ def test_mdfe_close_http_400(self, mock_build_proc, mock_post):
156162
self.fiscal_document.mdfe_close()
157163

158164
msg = str(err.exception)
159-
self.assertIn("Erro AT&M (400)", msg)
160-
self.assertIn("912", msg)
165+
self.assertIn(
166+
"Falha HTTP ao enviar XML para AT&M: Mocked error with status 400", msg
167+
)
161168
evt = self.env["atm.averba.event"].search(
162169
[("document_id", "=", self.fiscal_document.id)], limit=1
163170
)
@@ -175,4 +182,7 @@ def test_mdfe_close_http_500(self, mock_build_proc, mock_post):
175182
with self.assertRaises(UserError) as err:
176183
self.fiscal_document.mdfe_close()
177184

178-
self.assertIn("Falha ao enviar XML para AT&M", str(err.exception))
185+
self.assertIn(
186+
"Falha HTTP ao enviar XML para AT&M: Mocked error with status 500",
187+
str(err.exception),
188+
)

0 commit comments

Comments
 (0)