From 4e75d675f8cb756a1529f89bfe24017d9841876b Mon Sep 17 00:00:00 2001 From: Marie PUPO JEAMMET Date: Mon, 9 Feb 2026 20:15:23 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(stats)=20count=20aliases=20in=20stats?= =?UTF-8?q?=20endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stats endpoint now return the count of aliases --- src/backend/core/api/client/viewsets.py | 1 + src/backend/core/tests/test_api_stats.py | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/backend/core/api/client/viewsets.py b/src/backend/core/api/client/viewsets.py index beb3cbc..2f34f98 100644 --- a/src/backend/core/api/client/viewsets.py +++ b/src/backend/core/api/client/viewsets.py @@ -621,6 +621,7 @@ class StatView(views.APIView): status=enums.MailDomainStatusChoices.ENABLED ).count(), "mailboxes": domains_models.Mailbox.objects.count(), + "aliases": domains_models.Alias.objects.count(), } return response.Response(context) diff --git a/src/backend/core/tests/test_api_stats.py b/src/backend/core/tests/test_api_stats.py index 87f3d77..af2c750 100644 --- a/src/backend/core/tests/test_api_stats.py +++ b/src/backend/core/tests/test_api_stats.py @@ -11,7 +11,6 @@ from rest_framework.test import APIClient from core import factories as core_factories from mailbox_manager import factories as domains_factories -from mailbox_manager import models as domains_models pytestmark = pytest.mark.django_db @@ -21,18 +20,20 @@ def test_api_stats__anonymous(django_assert_num_queries): domains_factories.MailDomainEnabledFactory.create_batch(5) core_factories.TeamFactory.create_batch(3) + domains_factories.AliasFactory.create_batch(2) # clear cache to allow stats count cache.clear() - with django_assert_num_queries(5): + with django_assert_num_queries(6): response = APIClient().get("/api/v1.0/stats/") assert response.status_code == status.HTTP_200_OK assert response.json() == { "total_users": 0, "mau": 0, - "active_domains": 5, + "active_domains": 7, "mailboxes": 0, "teams": 3, + "aliases": 2, } # no new request made due to caching with django_assert_num_queries(0): @@ -41,9 +42,10 @@ def test_api_stats__anonymous(django_assert_num_queries): assert response.json() == { "total_users": 0, "mau": 0, - "active_domains": 5, + "active_domains": 7, "mailboxes": 0, "teams": 3, + "aliases": 2, } @@ -58,10 +60,9 @@ def test_api_stats__expected_count(): core_factories.TeamFactory.create_batch(3) domains_factories.MailDomainFactory.create_batch(1) - domains_factories.MailDomainEnabledFactory.create_batch(2) - domains_factories.MailboxFactory.create_batch( - 10, domain=domains_models.MailDomain.objects.all()[1] - ) + enabled_domain, _ = domains_factories.MailDomainEnabledFactory.create_batch(2) + domains_factories.MailboxFactory.create_batch(10, domain=enabled_domain) + domains_factories.AliasFactory.create_batch(2, domain=enabled_domain) # clear cache to allow stats count cache.clear() @@ -73,4 +74,5 @@ def test_api_stats__expected_count(): "active_domains": 2, "mailboxes": 10, "teams": 3, + "aliases": 2, }