From 1f0396ab110002575ba81be3015b1b641ea8bc88 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 5 May 2025 17:22:03 +0200 Subject: [PATCH] Improved coverage --- modoboa/webmail/tests/test_viewsets.py | 6 ++++++ modoboa/webmail/viewsets.py | 10 ++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/modoboa/webmail/tests/test_viewsets.py b/modoboa/webmail/tests/test_viewsets.py index 921014baa..030da4354 100644 --- a/modoboa/webmail/tests/test_viewsets.py +++ b/modoboa/webmail/tests/test_viewsets.py @@ -291,6 +291,12 @@ class UserEmailViewSetTestCase(WebmailTestCase): self.assertEqual(response.status_code, 200) self.assertTrue(response.json()["subject"].startswith("Fwd:")) + def test_attachment(self): + self.authenticate() + url = reverse("v2:webmail-email-attachment") + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + class ComposeSessionViewSetTestCase(WebmailTestCase): diff --git a/modoboa/webmail/viewsets.py b/modoboa/webmail/viewsets.py index 485572d78..e89a332fb 100644 --- a/modoboa/webmail/viewsets.py +++ b/modoboa/webmail/viewsets.py @@ -19,21 +19,19 @@ class UserMailboxViewSet(viewsets.GenericViewSet): permission_classes = (IsAuthenticated, HasMailbox) def get_serializer_class(self): - if self.action == "list": - return serializers.UserMailboxesSerializer if self.action == "quota": return serializers.UserMailboxQuotaSerializer if self.action in ["create", "compress", "empty", "delete"]: return serializers.UserMailboxInputSerializer if self.action == "rename": return serializers.UserMailboxUpdateSerializer - return serializers.UserMailboxSerializer + return serializers.UserMailboxesSerializer def list(self, request): parent_mailbox = request.GET.get("mailbox") imapc = lib.get_imapconnector(request) mboxes = imapc.getmboxes(request.user, parent_mailbox) - serializer = serializers.UserMailboxesSerializer( + serializer = self.get_serializer( {"mailboxes": mboxes, "hdelimiter": imapc.hdelimiter} ) return response.Response(serializer.data) @@ -154,7 +152,7 @@ class UserEmailViewSet(viewsets.GenericViewSet): def move_selection(self, request, destination: str) -> int: """Move selected messages to the given mailbox.""" - serializer = serializers.MoveSelectionSerializer(data=request.data) + serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) mbc = lib.get_imapconnector(request) mbc.move( @@ -201,7 +199,7 @@ class UserEmailViewSet(viewsets.GenericViewSet): serializer_class=serializers.FlagSelectionSerializer, ) def flag(self, request): - serializer = serializers.FlagSelectionSerializer(data=request.data) + serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) imapc = lib.get_imapconnector(request) getattr(imapc, f"mark_messages_{serializer.validated_data['status']}")(