From 579657afa412eb2ce65599de910543c79ac29747 Mon Sep 17 00:00:00 2001 From: Marie PUPO JEAMMET Date: Thu, 3 Oct 2024 19:04:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(dimail)=20add=20status=20code=20in?= =?UTF-8?q?=20case=20of=20unexpected=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add status code in case of unexpected error --- .../tests/api/mailboxes/test_api_mailboxes_create.py | 9 ++++++++- src/backend/mailbox_manager/utils/dimail.py | 8 ++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/backend/mailbox_manager/tests/api/mailboxes/test_api_mailboxes_create.py b/src/backend/mailbox_manager/tests/api/mailboxes/test_api_mailboxes_create.py index c85d57a..212f179 100644 --- a/src/backend/mailbox_manager/tests/api/mailboxes/test_api_mailboxes_create.py +++ b/src/backend/mailbox_manager/tests/api/mailboxes/test_api_mailboxes_create.py @@ -500,7 +500,8 @@ def test_api_mailboxes__user_unrelated_to_domain(): assert not models.Mailbox.objects.exists() -def test_api_mailboxes__handling_dimail_unexpected_error(): +@mock.patch.object(Logger, "error") +def test_api_mailboxes__handling_dimail_unexpected_error(mock_error): """ API should raise a clear error when dimail returns an unexpected response. """ @@ -542,6 +543,12 @@ def test_api_mailboxes__handling_dimail_unexpected_error(): } assert not models.Mailbox.objects.exists() + # Check error logger was called + assert mock_error.called + assert mock_error.call_args_list[1][0] == ( + 'Unexpected response from dimail: 500 {"details": "Internal server error"}', + ) + @mock.patch.object(Logger, "error") @mock.patch.object(Logger, "info") diff --git a/src/backend/mailbox_manager/utils/dimail.py b/src/backend/mailbox_manager/utils/dimail.py index 68eb6d4..9cbfaa5 100644 --- a/src/backend/mailbox_manager/utils/dimail.py +++ b/src/backend/mailbox_manager/utils/dimail.py @@ -120,8 +120,12 @@ class DimailAPIClient: """Raise error when encountering an unexpected error in dimail.""" error_content = response.content.decode("utf-8") - logger.error("[DIMAIL] unexpected error : %s", error_content) - raise SystemError(f"Unexpected response from dimail: {error_content}") + logger.error( + "[DIMAIL] unexpected error : %s %s", response.status_code, error_content + ) + raise SystemError( + f"Unexpected response from dimail: {response.status_code} {error_content}" + ) def send_new_mailbox_notification(self, recipient, mailbox_data): """