mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Improved coverage
This commit is contained in:
@@ -187,6 +187,8 @@ class DomainSerializer(v1_serializers.DomainSerializer):
|
||||
if (
|
||||
instance._loaded_values.get("enable_dkim") != instance.enable_dkim
|
||||
and instance.enable_dkim
|
||||
) or (
|
||||
instance._loaded_values.get("dkim_key_length") != instance.dkim_key_length
|
||||
):
|
||||
instance.generate_dkim_key()
|
||||
if transport_def and instance.type == "relaydomain":
|
||||
|
||||
@@ -4,11 +4,14 @@ import os
|
||||
import shutil
|
||||
import tempfile
|
||||
|
||||
from rq import SimpleWorker
|
||||
from testfixtures import compare
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.urls import reverse
|
||||
|
||||
import django_rq
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoAPITestCase, SETTINGS_SAMPLE
|
||||
|
||||
@@ -194,7 +197,7 @@ class DKIMTestCase(ModoAPITestCase):
|
||||
self.assertEqual(domain.dkim_private_key_path, "")
|
||||
|
||||
def test_dkim_key_length_modification(self):
|
||||
""" """
|
||||
"""Check that key length change triggers a new key creation."""
|
||||
self.set_global_parameter("dkim_keys_storage_dir", self.workdir)
|
||||
values = {
|
||||
"name": "pouet.com",
|
||||
@@ -207,9 +210,12 @@ class DKIMTestCase(ModoAPITestCase):
|
||||
url = reverse("v2:domain-list")
|
||||
response = self.client.post(url, values, format="json")
|
||||
self.assertEqual(response.status_code, 201)
|
||||
call_command("modo", "manage_dkim_keys")
|
||||
queue = django_rq.get_queue("dkim")
|
||||
worker = SimpleWorker([queue], connection=queue.connection)
|
||||
worker.work(burst=True)
|
||||
key_path = os.path.join(self.workdir, "{}.pem".format(values["name"]))
|
||||
self.assertTrue(os.path.exists(key_path))
|
||||
|
||||
dom = Domain.objects.get(name="pouet.com")
|
||||
values["dkim_key_length"] = 4096
|
||||
response = self.client.put(
|
||||
@@ -219,5 +225,5 @@ class DKIMTestCase(ModoAPITestCase):
|
||||
dom.refresh_from_db()
|
||||
self.assertEqual(dom.dkim_private_key_path, "")
|
||||
os.unlink(key_path)
|
||||
call_command("modo", "manage_dkim_keys")
|
||||
worker.work(burst=True)
|
||||
self.assertTrue(os.path.exists(key_path))
|
||||
|
||||
+42
-3
@@ -1,10 +1,14 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from django.core import management
|
||||
from rq import SimpleWorker
|
||||
from testfixtures import LogCapture
|
||||
|
||||
from django.test import modify_settings
|
||||
from django.urls import reverse
|
||||
|
||||
import django_rq
|
||||
|
||||
from modoboa.admin import factories as admin_factories, models as admin_models
|
||||
from modoboa.lib.tests import ModoAPITestCase
|
||||
from modoboa.rspamd import jobs
|
||||
@@ -38,8 +42,18 @@ class ManagementCommandTestCase(ModoAPITestCase):
|
||||
|
||||
def test_job(self):
|
||||
self.unconfigure()
|
||||
with self.assertRaises(management.CommandError):
|
||||
management.call_command("manage_rspamd_maps")
|
||||
with LogCapture("modoboa.jobs") as log:
|
||||
jobs.update_rspamd_maps(
|
||||
list(admin_models.Domain.objects.all().values_list("id", flat=True))
|
||||
)
|
||||
log.check(
|
||||
(
|
||||
"modoboa.jobs",
|
||||
"ERROR",
|
||||
"path map path and/or selector map path "
|
||||
"not set in modoboa rspamd settings.",
|
||||
)
|
||||
)
|
||||
|
||||
self.configure()
|
||||
jobs.update_rspamd_maps(
|
||||
@@ -68,6 +82,31 @@ class ManagementCommandTestCase(ModoAPITestCase):
|
||||
content = fp.read()
|
||||
self.assertNotIn(domain.name, content)
|
||||
|
||||
def test_signal_handler(self):
|
||||
self.set_global_parameter("dkim_keys_storage_dir", self.workdir, app="admin")
|
||||
self.configure()
|
||||
values = {
|
||||
"name": "pouet.com",
|
||||
"quota": 1000,
|
||||
"default_mailbox_quota": 100,
|
||||
"type": "domain",
|
||||
"enable_dkim": True,
|
||||
}
|
||||
url = reverse("v2:domain-list")
|
||||
response = self.client.post(url, values, format="json")
|
||||
self.assertEqual(response.status_code, 201)
|
||||
|
||||
queue = django_rq.get_queue("dkim")
|
||||
worker = SimpleWorker([queue], connection=queue.connection)
|
||||
worker.work(burst=True)
|
||||
|
||||
queue = django_rq.get_queue("modoboa")
|
||||
worker = SimpleWorker([queue], connection=queue.connection)
|
||||
worker.work(burst=True)
|
||||
|
||||
self.assertTrue(os.path.exists(self.key_map_path))
|
||||
self.assertTrue(os.path.exists(self.selector_map_path))
|
||||
|
||||
|
||||
class ParametersAPITestCase(ModoAPITestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user