mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Improved tests
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user