From be2d47face0595d83d85ec477cb81bf78493b923 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 24 Nov 2025 14:55:57 +0100 Subject: [PATCH] Disable check when radicale related plugins are missing. fix #3808 --- modoboa/core/checks.py | 5 +++++ modoboa/core/tests/test_checks.py | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/modoboa/core/checks.py b/modoboa/core/checks.py index c12101719..a90b7d648 100644 --- a/modoboa/core/checks.py +++ b/modoboa/core/checks.py @@ -100,6 +100,11 @@ def check_dovecot_oauth_app(*args, **kwargs): @register(deploy=True) def check_radicale_oauth_app(*args, **kwargs): + if ( + "modoboa.contacts" not in settings.MODOBOA_APPS + and "modoboa.calendars" not in settings.MODOBOA_APPS + ): + return [] error = [] if not oauth_app_exists("Radicale"): error.append(E002) diff --git a/modoboa/core/tests/test_checks.py b/modoboa/core/tests/test_checks.py index d2fe5df1e..3f50d2504 100644 --- a/modoboa/core/tests/test_checks.py +++ b/modoboa/core/tests/test_checks.py @@ -72,3 +72,30 @@ class CheckSessionCookieSecureTest(SimpleModoTestCase): ) msgs = checks.check_radicale_oauth_app() self.assertEqual(len(msgs), 0) + + @override_settings( + MODOBOA_APPS=[ + "modoboa", + "modoboa.core", + "modoboa.lib", + "modoboa.admin", + "modoboa.autoconfig", + "modoboa.transport", + "modoboa.relaydomains", + "modoboa.limits", + "modoboa.parameters", + "modoboa.dnstools", + "modoboa.policyd", + "modoboa.maillog", + "modoboa.pdfcredentials", + "modoboa.dmarc", + "modoboa.imap_migration", + "modoboa.autoreply", + "modoboa.sievefilters", + "modoboa.webmail", + ] + ) + def test_radicale_oauth_app_skipped(self): + get_application_model().objects.filter(name="Radicale").delete() + msgs = checks.check_radicale_oauth_app() + self.assertEqual(len(msgs), 0)