Improved tests

This commit is contained in:
Antoine Nguyen
2026-01-12 17:53:13 +01:00
parent 0fc07aa40f
commit 09dfeb2353
3 changed files with 16 additions and 11 deletions
@@ -4,10 +4,10 @@ import os
import shutil
from unittest import mock
from django.core.management import call_command
from django.test import override_settings
from django.urls import reverse
from modoboa.admin import jobs
from modoboa.lib.tests import ModoAPITestCase
from .. import factories, models
@@ -45,7 +45,7 @@ class MailboxOperationTestCase(ModoAPITestCase):
self.client.post(
reverse("v2:account-delete", args=[mb.user.pk]), {}, format="json"
)
call_command("handle_mailbox_operations")
jobs.handle_mailbox_operations()
self.assertFalse(models.MailboxOperation.objects.exists())
self.assertFalse(os.path.exists(mb.mail_home))
@@ -71,7 +71,7 @@ class MailboxOperationTestCase(ModoAPITestCase):
self.assertEqual(response.status_code, 200)
path = f"{self.workdir}/test.com/admin2"
mail_home_mock.__get__ = mock.Mock(return_value=path)
call_command("handle_mailbox_operations")
jobs.handle_mailbox_operations()
self.assertFalse(models.MailboxOperation.objects.exists())
self.assertTrue(os.path.exists(mb.mail_home))
@@ -84,6 +84,6 @@ class MailboxOperationTestCase(ModoAPITestCase):
self.client.post(
reverse("v2:domain-delete", args=[domain.pk]), {}, format="json"
)
call_command("handle_mailbox_operations")
jobs.handle_mailbox_operations()
self.assertFalse(models.MailboxOperation.objects.exists())
self.assertFalse(os.path.exists(path))
+11 -7
View File
@@ -3,6 +3,7 @@
from unittest import mock
import dns.resolver
from freezegun import freeze_time
from rq import SimpleWorker
from testfixtures import LogCapture
@@ -209,7 +210,7 @@ class DNSBLTestCase(ModoTestCase):
)
cls.domain.add_admin(mb.user)
factories.DomainFactory(name="does-not-exist.example.com")
cls.domain4 = factories.DomainFactory(name="does-not-exist.example.com")
cls.domain2 = factories.DomainFactory(
name="test.localhost"
) # Should not be checked
@@ -230,9 +231,12 @@ class DNSBLTestCase(ModoTestCase):
queue = django_rq.get_queue("modoboa")
worker = SimpleWorker([queue], connection=queue.connection)
with LogCapture("modoboa.dns"):
jobs.handle_dns_checks()
worker.work(burst=True)
for cpt in range(10):
with freeze_time(f"2026-01-12 14:00:0{cpt}"):
jobs.handle_dns_checks()
worker.work(burst=True)
self.assertTrue(models.DNSBLResult.objects.filter(domain=self.domain).exists())
self.assertFalse(
models.DNSBLResult.objects.filter(domain=self.domain3).exists()
@@ -259,12 +263,12 @@ class DNSBLTestCase(ModoTestCase):
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname
):
"""Check notifications."""
self.set_global_parameter("enable_dnsbl_checks", True)
mock_query.side_effect = utils.mock_dns_query_result
mock_getaddrinfo.side_effect = utils.mock_ip_query_result
mock_g_gethostbyname.return_value = "127.255.255.254" # <--Spamhaus response when querying from an open resolver
with LogCapture("modoboa.dns"):
DNSChecker().run(self.domain)
self.assertEqual(len(mail.outbox), 1)
DNSChecker().run(self.domain)
self.assertEqual(len(mail.outbox), 0)
@mock.patch("socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
+1
View File
@@ -98,6 +98,7 @@ test = [
"factory-boy<3.4.0",
"httmock==1.4.0",
"testfixtures==8.3.0",
"freezegun",
"tox",
]
ldap = ["django-auth-ldap<6.0.0"]