♻️(tests) refacto dimail tests with fixtures

test_api_mailboxes_create exceeded 1000 lines. By using fixtures, we can
at least factorize dimail response when token is ok or mailbox_data sent
to our API when creating a mailbox.
This commit is contained in:
Marie PUPO JEAMMET
2025-09-12 12:09:23 +02:00
committed by Marie
parent b24cb23a83
commit 4262f469d6
5 changed files with 337 additions and 473 deletions

View File

@@ -3,6 +3,7 @@
from logging import getLogger
from django.contrib.auth.hashers import make_password
from django.core import exceptions as django_exceptions
from requests.exceptions import HTTPError
from rest_framework import exceptions, serializers
@@ -44,10 +45,17 @@ class MailboxSerializer(serializers.ModelSerializer):
"password": make_password(None), # generate an unusable password
}
)
if mailbox.domain.status == enums.MailDomainStatusChoices.ENABLED:
client = DimailAPIClient()
if validated_data["domain"].status == enums.MailDomainStatusChoices.ENABLED:
# send new mailbox request to dimail
response = client.create_mailbox(mailbox, self.context["request"].user.sub)
client = DimailAPIClient()
try:
response = client.create_mailbox(
mailbox, self.context["request"].user.sub
)
except django_exceptions.ValidationError as exc:
mailbox.delete()
raise exc
mailbox.status = enums.MailDomainStatusChoices.ENABLED
mailbox_data = response.json()
@@ -68,7 +76,6 @@ class MailboxSerializer(serializers.ModelSerializer):
mailbox,
)
# actually save mailbox on our database
return mailbox