From c671b2526dffd1a409ab5ea00ade929f1f924d5c Mon Sep 17 00:00:00 2001 From: Spitap Date: Sun, 25 Jun 2023 17:36:27 +0200 Subject: [PATCH] Added test, fixed dkim management command Thank you test --- .../commands/subcommands/_manage_dkim_keys.py | 5 +++-- modoboa/admin/tests/test_domain.py | 11 ++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py b/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py index c1b9a0f3d..7c021b83b 100644 --- a/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py +++ b/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py @@ -65,6 +65,9 @@ class ManageDKIMKeys(BaseCommand): def handle(self, *args, **options): """Entry point.""" + self.default_key_length = param_tools.get_global_parameter( + "dkim_default_key_length") + if options["domain"] != "": domain = models.Domain.objects.filter(name=options["domain"], enable_dkim=True, @@ -75,8 +78,6 @@ class ManageDKIMKeys(BaseCommand): domains=domain) return - self.default_key_length = param_tools.get_global_parameter( - "dkim_default_key_length") qset = models.Domain.objects.filter( enable_dkim=True, dkim_private_key_path="") for domain in qset: diff --git a/modoboa/admin/tests/test_domain.py b/modoboa/admin/tests/test_domain.py index 6fd4a8b7a..abf9593f4 100644 --- a/modoboa/admin/tests/test_domain.py +++ b/modoboa/admin/tests/test_domain.py @@ -470,12 +470,21 @@ class DKIMTestCase(ModoTestCase): constants.ALARM_CLOSED) key_path = os.path.join(self.workdir, "{}.pem".format(values["name"])) self.assertTrue(os.path.exists(key_path)) - domain = Domain.objects.get(name=values["name"]) + + domain.refresh_from_db() url = reverse("admin:domain_detail", args=[domain.pk]) response = self.client.get(url) self.assertContains( response, escape(domain.bind_format_dkim_public_key)) + # Try generating DKIM key for a targetted domain + domain.dkim_private_key_path = "" + domain.save() + + call_command("modo", "manage_dkim_keys", f"--domain={domain.name}") + domain.refresh_from_db() + self.assertNotEqual(domain.dkim_private_key_path, "") + def test_dkim_key_length_modification(self): """ """ self.set_global_parameter("dkim_keys_storage_dir", self.workdir)