From 161ddb460ad2665aa3eaf641a3555132883e3a24 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 21 Apr 2020 12:49:07 +0200 Subject: [PATCH] Improved coverage. --- modoboa/admin/tests/test_api.py | 2 +- modoboa/core/tests/test_authentication.py | 29 +++++++++++++++++++++++ modoboa/core/views/auth.py | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/modoboa/admin/tests/test_api.py b/modoboa/admin/tests/test_api.py index e68b11f63..982ff5aa6 100644 --- a/modoboa/admin/tests/test_api.py +++ b/modoboa/admin/tests/test_api.py @@ -590,9 +590,9 @@ class AccountAPITestCase(ModoAPITestCase): account.phone_number = "+33612345678" account.save() - response = self.client.post(url, data, format="json") client_get.return_value = ["service"] client_post.return_value = {"totalCreditsRemoved": 1} + response = self.client.post(url, data, format="json") self.assertEqual(response.status_code, 200) diff --git a/modoboa/core/tests/test_authentication.py b/modoboa/core/tests/test_authentication.py index 0816e099c..dfb8f770d 100644 --- a/modoboa/core/tests/test_authentication.py +++ b/modoboa/core/tests/test_authentication.py @@ -251,6 +251,35 @@ class PasswordResetTestCase(ModoTestCase): response = self.client.post(url, data) self.assertEqual(response.status_code, 302) + @mock.patch("ovh.Client.get") + @mock.patch("ovh.Client.post") + def test_resend_reset_code(self, client_post, client_get): + """Test resend code service.""" + url = reverse("password_reset_resend_code") + # SMS password recovery not enabled + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + self.set_global_parameters({ + "sms_password_recovery": True, + "sms_provider": "ovh", + "sms_ovh_application_key": "key", + "sms_ovh_application_secret": "secret", + "sms_ovh_consumer_key": "consumer" + }, app="core") + # No user pk in session + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + session = self.client.session + session["user_pk"] = self.account_ok.pk + session.save() + client_get.return_value = ["service"] + client_post.return_value = {"totalCreditsRemoved": 1} + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertIn("totp_secret", self.client.session) + @skipIf(NO_SMTP, "No SMTP server available") @override_settings(AUTHENTICATION_BACKENDS=( diff --git a/modoboa/core/views/auth.py b/modoboa/core/views/auth.py index b466cc5a7..1045b7af5 100644 --- a/modoboa/core/views/auth.py +++ b/modoboa/core/views/auth.py @@ -170,7 +170,7 @@ class PasswordResetView(auth_views.PasswordResetView): "Please use the following code to recover your Modoboa password: {}" .format(code) ) - if not backend.send(text, [user.phone_number]): + if not backend.send(text, [str(user.phone_number)]): return super().form_valid(form) self.request.session["user_pk"] = user.pk self.request.session["totp_secret"] = secret