From 9a13121fdef75c2af3b1d0529b20b537e9043494 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 21 Apr 2020 13:58:31 +0200 Subject: [PATCH] Improved coverage. --- modoboa/core/app_settings.py | 22 +++++++++++----------- modoboa/core/tests/test_authentication.py | 9 +++++++++ modoboa/core/tests/test_views.py | 15 +++++++++++++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/modoboa/core/app_settings.py b/modoboa/core/app_settings.py index ee9a52e15..cbda5556d 100644 --- a/modoboa/core/app_settings.py +++ b/modoboa/core/app_settings.py @@ -564,17 +564,6 @@ class GeneralParametersForm(param_forms.AdminParametersForm): """ super().clean() cleaned_data = self.cleaned_data - if cleaned_data["authentication_type"] != "ldap": - return cleaned_data - - if cleaned_data["ldap_auth_method"] == "searchbind": - required_fields = ["ldap_search_base", "ldap_search_filter"] - else: - required_fields = ["ldap_user_dn_template"] - - for f in required_fields: - if f not in cleaned_data or cleaned_data[f] == u'': - self.add_error(f, _("This field is required")) if cleaned_data["sms_password_recovery"]: provider = cleaned_data.get("sms_provider") @@ -586,6 +575,17 @@ class GeneralParametersForm(param_forms.AdminParametersForm): self.add_error(name, _("This field is required")) else: self.add_error("sms_provider", _("This field is required")) + if cleaned_data["authentication_type"] != "ldap": + return cleaned_data + + if cleaned_data["ldap_auth_method"] == "searchbind": + required_fields = ["ldap_search_base", "ldap_search_filter"] + else: + required_fields = ["ldap_user_dn_template"] + + for f in required_fields: + if f not in cleaned_data or cleaned_data[f] == u'': + self.add_error(f, _("This field is required")) return cleaned_data diff --git a/modoboa/core/tests/test_authentication.py b/modoboa/core/tests/test_authentication.py index dfb8f770d..265ab4dd0 100644 --- a/modoboa/core/tests/test_authentication.py +++ b/modoboa/core/tests/test_authentication.py @@ -221,6 +221,15 @@ class PasswordResetTestCase(ModoTestCase): "We've emailed you instructions for setting your password") self.assertEqual(len(mail.outbox), 0) + def test_reset_password_announcement(self): + """Check if announcement is showing.""" + self.client.logout() + url = reverse("password_reset") + msg = "Announcement" + self.set_global_parameter("password_recovery_msg", msg) + response = self.client.get(url) + self.assertContains(response, msg) + @mock.patch("oath.accept_totp") @mock.patch("ovh.Client.get") @mock.patch("ovh.Client.post") diff --git a/modoboa/core/tests/test_views.py b/modoboa/core/tests/test_views.py index 26d25808a..ec95a62fe 100644 --- a/modoboa/core/tests/test_views.py +++ b/modoboa/core/tests/test_views.py @@ -226,6 +226,21 @@ sha512crypt is not one of the available choices."]}, "prefix": "core" }) + def test_sms_settings_clean(self): + """Check sms settings validation.""" + url = reverse("core:parameters") + settings = SETTINGS_SAMPLE.copy() + settings["core-sms_password_recovery"] = True + settings["core-sms_provider"] = "" + response = self.client.post(url, settings, format="json") + self.assertEqual(response.status_code, 400) + settings["core-sms_provider"] = "ovh" + response = self.client.post(url, settings, format="json") + self.assertEqual(response.status_code, 400) + errors = response.json() + self.assertIn( + "sms_ovh_application_secret", errors["form_errors"]) + class UserSettings(param_forms.UserParametersForm): """Stupid user settings form."""