From 4f9768520473c9f18f4524f6ef45a8d63b0ec8cb Mon Sep 17 00:00:00 2001 From: Marie PUPO JEAMMET Date: Thu, 28 Aug 2025 15:15:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(admin)=20fix=20mailbox=20import=20?= =?UTF-8?q?from=20dimail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit importing mailboxes from dimail was broken due to a change of format in dimail's response. --- .../mailbox_manager/tests/test_utils_dimail_client.py | 4 ++-- src/backend/mailbox_manager/utils/dimail.py | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/backend/mailbox_manager/tests/test_utils_dimail_client.py b/src/backend/mailbox_manager/tests/test_utils_dimail_client.py index 162bfe6..f923bbf 100644 --- a/src/backend/mailbox_manager/tests/test_utils_dimail_client.py +++ b/src/backend/mailbox_manager/tests/test_utils_dimail_client.py @@ -51,7 +51,7 @@ def test_dimail_synchronization__already_sync(): rsps.add( rsps.GET, re.compile(rf".*/domains/{domain.name}/mailboxes/"), - body=str( + body=json.dumps( [ { "type": "mailbox", @@ -129,7 +129,7 @@ def test_dimail_synchronization__synchronize_mailboxes(mock_warning): rsps.add( rsps.GET, re.compile(rf".*/domains/{domain.name}/mailboxes/"), - body=str( + body=json.dumps( [ mailbox_valid, mailbox_with_wrong_domain, diff --git a/src/backend/mailbox_manager/utils/dimail.py b/src/backend/mailbox_manager/utils/dimail.py index 14085da..1dfdfb9 100644 --- a/src/backend/mailbox_manager/utils/dimail.py +++ b/src/backend/mailbox_manager/utils/dimail.py @@ -2,7 +2,6 @@ """A minimalist client to synchronize with mailbox provisioning API.""" -import ast import json import smtplib from email.errors import HeaderParseError, NonASCIILocalPartDefect @@ -346,10 +345,7 @@ class DimailAPIClient: if response.status_code != status.HTTP_200_OK: return self.raise_exception_for_unexpected_response(response) - dimail_mailboxes = ast.literal_eval( - response.content.decode("utf-8") - ) # format output str to proper list - + dimail_mailboxes = response.json() people_mailboxes = models.Mailbox.objects.filter(domain=domain) imported_mailboxes = [] for dimail_mailbox in dimail_mailboxes: