(stats) count aliases in stats endpoint

stats endpoint now return the count of aliases
This commit is contained in:
Marie PUPO JEAMMET
2026-02-09 20:15:23 +01:00
committed by Marie
parent 1d4d40aad0
commit 4e75d675f8
2 changed files with 11 additions and 8 deletions

View File

@@ -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)

View File

@@ -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,
}