From 1157fe9ff10c57aa6b722a793d1db564a3f3a7b5 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 22 Sep 2025 17:10:45 +0200 Subject: [PATCH] Fixed tests --- modoboa/admin/models/domain.py | 2 +- modoboa/admin/models/mixins.py | 4 +++- modoboa/autoreply/api/v2/tests.py | 8 ++++---- modoboa/calendars/tests.py | 16 ++++++++-------- modoboa/contacts/tests.py | 6 +++--- modoboa/core/api/v1/tests.py | 4 ++-- modoboa/core/models.py | 2 +- 7 files changed, 22 insertions(+), 20 deletions(-) diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py index 5821f01fa..ad5bef7dd 100644 --- a/modoboa/admin/models/domain.py +++ b/modoboa/admin/models/domain.py @@ -202,7 +202,7 @@ class Domain(mixins.MessageLimitMixin, AdminObject): return self.dnsrecord_set.filter(type="autodiscover").first() @cached_property - def allocated_quota(self): + def allocated_quota(self) -> int: """Return current quota allocation.""" if not self.quota: return 0 diff --git a/modoboa/admin/models/mixins.py b/modoboa/admin/models/mixins.py index 848b8b6c0..de8361f03 100644 --- a/modoboa/admin/models/mixins.py +++ b/modoboa/admin/models/mixins.py @@ -1,5 +1,7 @@ """Admin model mixins.""" +from typing import Optional + from modoboa.policyd.utils import get_message_counter @@ -18,7 +20,7 @@ class MessageLimitMixin: return self.message_limit - get_message_counter(self.message_counter_key) @property - def sent_messages_in_percent(self): + def sent_messages_in_percent(self) -> Optional[int]: # noqa """Return number of sent messages as a percentage.""" if not self.message_limit: return None diff --git a/modoboa/autoreply/api/v2/tests.py b/modoboa/autoreply/api/v2/tests.py index aee821fbb..e332d24a4 100644 --- a/modoboa/autoreply/api/v2/tests.py +++ b/modoboa/autoreply/api/v2/tests.py @@ -62,7 +62,7 @@ class ARMessageViewSetTestCase(PatcherMixin, ModoAPITestCase): def test_retrieve_armessage_domadmin(self): admin = User.objects.get(username="admin@test.com") self.client.logout() - self.client.force_login(admin) + self.client.force_authenticate(admin) url = reverse("api:armessage-list") response = self.client.get(url) self.assertEqual(response.status_code, 200) @@ -74,7 +74,7 @@ class ARMessageViewSetTestCase(PatcherMixin, ModoAPITestCase): def test_retrieve_armessage_simpleuser(self): self.client.logout() - self.client.force_login(self.account) + self.client.force_authenticate(self.account) url = reverse("api:armessage-list") response = self.client.get(url) self.assertEqual(response.status_code, 200) @@ -156,7 +156,7 @@ class AccountARMessageViewSetTestCase(PatcherMixin, ModoAPITestCase): response = self.client.get(url) self.assertEqual(response.status_code, 403) self.client.logout() - self.client.force_login(self.account) + self.client.force_authenticate(self.account) self.assertFalse( models.ARmessage.objects.filter(mbox=self.account.mailbox).exists() ) @@ -168,7 +168,7 @@ class AccountARMessageViewSetTestCase(PatcherMixin, ModoAPITestCase): def test_set_armessage(self): self.client.logout() - self.client.force_login(self.account) + self.client.force_authenticate(self.account) url = reverse("api:account_armessage-armessage") fromdate = timezone.now() todate = fromdate + relativedelta(days=4) diff --git a/modoboa/calendars/tests.py b/modoboa/calendars/tests.py index f92ec4e04..3f00ed214 100644 --- a/modoboa/calendars/tests.py +++ b/modoboa/calendars/tests.py @@ -13,7 +13,7 @@ from modoboa.admin import factories as admin_factories from modoboa.admin import models as admin_models from modoboa.core import factories as core_factories from modoboa.core import models as core_models -from modoboa.lib.tests import ModoTestCase, ModoAPITestCase +from modoboa.lib.tests import ModoAPITestCase from modoboa.admin.factories import populate_database @@ -53,7 +53,7 @@ class TestDataMixin: cls.scalendar2 = factories.SharedCalendarFactory(domain=cls.domain2) -class AccessRuleTestCase(ModoTestCase): +class AccessRuleTestCase(ModoAPITestCase): @classmethod def setUpTestData(cls): @@ -139,7 +139,7 @@ class UserCalendarViewSetTestCase(TestDataMixin, ModoAPITestCase): def setUp(self): """Initiate test context.""" - self.client.force_login(self.account) + self.client.force_authenticate(self.account) self.set_global_parameter("server_location", "http://localhost:5232") def test_get_calendars(self): @@ -214,7 +214,7 @@ class SharedCalendarViewSetTestCase(TestDataMixin, ModoAPITestCase): def setUp(self): """Initiate test context.""" - self.client.force_login(self.admin_account) + self.client.force_authenticate(self.admin_account) self.set_global_parameter("server_location", "http://localhost:5232") def test_get_calendars(self): @@ -304,7 +304,7 @@ class AccessRuleViewSetTestCase(TestDataMixin, ModoAPITestCase): def setUp(self): """Initiate test context.""" - self.client.force_login(self.account) + self.client.force_authenticate(self.account) def test_get_accessrules(self): """Test access rule retrieval.""" @@ -383,7 +383,7 @@ class EventViewSetTestCase(TestDataMixin, ModoAPITestCase): self.cal_mock.return_value = mocks.Calendar(client=self.client_mock) self.addCleanup(patcher2.stop) - self.client.force_login(self.account) + self.client.force_authenticate(self.account) self.set_global_parameter("server_location", "http://localhost") def test_get_user_events(self): @@ -550,7 +550,7 @@ class AttendeeViewSetTestCase(ModoAPITestCase): def setUp(self): """Initiate test context.""" - self.client.force_login(self.account) + self.client.force_authenticate(self.account) def test_get_attendees(self): """Test attendees retrieval.""" @@ -571,7 +571,7 @@ class MailboxViewSetTestCase(ModoAPITestCase): def setUp(self): """Initiate test context.""" - self.client.force_login(self.account) + self.client.force_authenticate(self.account) def test_get_mailboxes(self): """Test mailbox retrieval.""" diff --git a/modoboa/contacts/tests.py b/modoboa/contacts/tests.py index 9225399ce..5c18b7a81 100644 --- a/modoboa/contacts/tests.py +++ b/modoboa/contacts/tests.py @@ -11,7 +11,7 @@ from django.utils import timezone from modoboa.admin import factories as admin_factories from modoboa.core import models as core_models -from modoboa.lib.tests import ModoAPITestCase, ModoTestCase +from modoboa.lib.tests import ModoAPITestCase from . import factories from . import mocks @@ -46,7 +46,7 @@ class TestDataMixin: def setUp(self, *args, **kwargs): """Initiate test context.""" - self.client.force_login(self.user) + self.client.force_authenticate(self.user) self.set_global_parameter( "server_location", "http://example.test/radicale/", app="calendars" ) @@ -312,7 +312,7 @@ class EmailAddressViewSetTestCase(TestDataMixin, ModoAPITestCase): self.assertEqual(len(response.data), 3) -class ImportTestCase(TestDataMixin, ModoTestCase): +class ImportTestCase(TestDataMixin, ModoAPITestCase): def setUp(self): super().setUp() diff --git a/modoboa/core/api/v1/tests.py b/modoboa/core/api/v1/tests.py index 0d82ed941..d4b06a798 100644 --- a/modoboa/core/api/v1/tests.py +++ b/modoboa/core/api/v1/tests.py @@ -1,9 +1,9 @@ from django.urls import reverse_lazy -from modoboa.lib.tests import ModoTestCase +from modoboa.lib.tests import ModoAPITestCase -class OpenAPITestCase(ModoTestCase): +class OpenAPITestCase(ModoAPITestCase): openapi_schema_url = reverse_lazy("schema-v1-legacy") def test_unauthorized(self): diff --git a/modoboa/core/models.py b/modoboa/core/models.py index 129e0f0d5..e2cf99bf9 100644 --- a/modoboa/core/models.py +++ b/modoboa/core/models.py @@ -220,7 +220,7 @@ class User(AbstractUser): return self.email @property - def tfa_enabled(self): + def tfa_enabled(self) -> bool: return self.totp_enabled or self.webauthn_enabled def is_owner(self, obj):