diff --git a/src/backend/core/api/client/viewsets.py b/src/backend/core/api/client/viewsets.py
index 3626f7e..fa2f4a6 100644
--- a/src/backend/core/api/client/viewsets.py
+++ b/src/backend/core/api/client/viewsets.py
@@ -7,6 +7,7 @@ from functools import reduce
from django.conf import settings
from django.db.models import OuterRef, Q, Subquery, Value
from django.db.models.functions import Coalesce
+from django.utils import timezone
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
@@ -605,7 +606,7 @@ class StatView(views.APIView):
context = {
"total_users": models.User.objects.count(),
"mau": models.User.objects.filter(
- last_login__gte=datetime.datetime.now() - datetime.timedelta(30)
+ last_login__gte=timezone.now() - datetime.timedelta(30)
).count(),
"teams": models.Team.objects.count(),
"domains": domains_models.MailDomain.objects.count(),
diff --git a/src/backend/core/factories.py b/src/backend/core/factories.py
index d92f37a..90fa14c 100644
--- a/src/backend/core/factories.py
+++ b/src/backend/core/factories.py
@@ -240,7 +240,7 @@ class TeamWebhookFactory(factory.django.DjangoModelFactory):
model = models.TeamWebhook
team = factory.SubFactory(TeamFactory)
- url = factory.Sequence(lambda n: f"https://example.com/Groups/{n!s}")
+ url = factory.Sequence(lambda n: f"https://nosuchdomain.xyz/Groups/{n!s}")
class InvitationFactory(factory.django.DjangoModelFactory):
diff --git a/src/backend/mailbox_manager/admin.py b/src/backend/mailbox_manager/admin.py
index 45cd4cc..1c42350 100644
--- a/src/backend/mailbox_manager/admin.py
+++ b/src/backend/mailbox_manager/admin.py
@@ -1,7 +1,7 @@
"""Admin classes and registrations for People's mailbox manager app."""
from django.contrib import admin, messages
-from django.utils.html import format_html
+from django.utils.html import format_html_join, mark_safe
from django.utils.translation import gettext_lazy as _
from requests import exceptions
@@ -9,6 +9,9 @@ from requests import exceptions
from mailbox_manager import enums, models
from mailbox_manager.utils.dimail import DimailAPIClient
+# Prevent Ruff complaining about mark_safe below
+# ruff: noqa: S308
+
@admin.action(description=_("Synchronise from dimail"))
def sync_mailboxes_from_dimail(modeladmin, request, queryset): # pylint: disable=unused-argument
@@ -79,10 +82,16 @@ def fetch_domain_status_from_dimail(modeladmin, request, queryset): # pylint: d
if domains_updated
else _("No domain updated."),
]
- messages.success(request, format_html("
".join(map(str, msg_success))))
+ messages.success(
+ request,
+ format_html_join(mark_safe("
"), "{}", ([str(m)] for m in msg_success)),
+ )
if msg_error:
msg_error.insert(0, _("Check domain failed for:"))
- messages.error(request, format_html("
".join(map(str, msg_error))))
+ messages.error(
+ request,
+ format_html_join(mark_safe("
"), "{}", ([str(m)] for m in msg_error)),
+ )
if excluded_domains:
messages.warning(
request,
diff --git a/src/backend/mailbox_manager/management/commands/setup_dimail_db.py b/src/backend/mailbox_manager/management/commands/setup_dimail_db.py
index 3118c22..40d4bce 100644
--- a/src/backend/mailbox_manager/management/commands/setup_dimail_db.py
+++ b/src/backend/mailbox_manager/management/commands/setup_dimail_db.py
@@ -48,7 +48,7 @@ class Command(BaseCommand):
# protected behind admin rights but dimail allows to create a first user
# when database is empty
self.create_user(
- auth=(None, None),
+ auth=("", ""),
name=admin["username"],
password=admin["password"],
perms=[],
diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml
index de20cc8..ec78b17 100644
--- a/src/backend/pyproject.toml
+++ b/src/backend/pyproject.toml
@@ -140,6 +140,12 @@ python_files = [
"test_*.py",
"tests.py",
]
+filterwarnings = [
+ # This one can be removed when upgrading to Django 6.0
+ 'ignore:The FORMS_URLFIELD_ASSUME_HTTPS transitional setting is deprecated.',
+ # This one can be removed after upgrading DRF to 3.16
+ "ignore:Converter 'drf_format_suffix'"
+]
[tool.coverage.run]
branch = true