mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Added unit tests.
This commit is contained in:
@@ -74,7 +74,7 @@ class AccountTestCase(ModoTestCase):
|
||||
values.update({
|
||||
"username": "pouet@test.com", "language": "en",
|
||||
"secondary_email": "homer@simpson.com",
|
||||
"phone_number": "123456789"
|
||||
"phone_number": "+33612345678"
|
||||
})
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[account.id]), values
|
||||
|
||||
@@ -563,6 +563,38 @@ class AccountAPITestCase(ModoAPITestCase):
|
||||
account.refresh_from_db()
|
||||
self.assertTrue(account.check_password("Toto1234"))
|
||||
|
||||
@mock.patch("ovh.Client.get")
|
||||
@mock.patch("ovh.Client.post")
|
||||
def test_reset_password(self, client_post, client_get):
|
||||
url = reverse("api:account-reset-password")
|
||||
# SMS password recovery not enabled
|
||||
response = self.client.post(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 email provided
|
||||
response = self.client.post(url)
|
||||
self.assertEqual(response.status_code, 400)
|
||||
|
||||
account = core_models.User.objects.get(username="user@test.com")
|
||||
data = {"email": account.email}
|
||||
# No phone number
|
||||
response = self.client.post(url, data, format="json")
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
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}
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
class AliasAPITestCase(ModoAPITestCase):
|
||||
"""Check Alias API."""
|
||||
|
||||
@@ -221,9 +221,10 @@ class PasswordResetTestCase(ModoTestCase):
|
||||
"We've emailed you instructions for setting your password")
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
@mock.patch("oath.accept_totp")
|
||||
@mock.patch("ovh.Client.get")
|
||||
@mock.patch("ovh.Client.post")
|
||||
def test_reset_password_sms(self, client_post, client_get):
|
||||
def test_reset_password_sms(self, client_post, client_get, accept_totp):
|
||||
"""Test reset password by SMS."""
|
||||
client_get.return_value = ["service"]
|
||||
client_post.return_value = {"totalCreditsRemoved": 1}
|
||||
@@ -241,6 +242,15 @@ class PasswordResetTestCase(ModoTestCase):
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, reverse("password_reset_confirm_code"))
|
||||
|
||||
data = {"code": "123456"}
|
||||
url = reverse("password_reset_confirm_code")
|
||||
accept_totp.return_value = (False, "")
|
||||
response = self.client.post(url, data)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
accept_totp.return_value = (True, "")
|
||||
response = self.client.post(url, data)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
|
||||
@skipIf(NO_SMTP, "No SMTP server available")
|
||||
@override_settings(AUTHENTICATION_BACKENDS=(
|
||||
|
||||
@@ -112,7 +112,7 @@ class ProfileTestCase(ModoTestCase):
|
||||
"""Update profile without password."""
|
||||
data = {
|
||||
"first_name": "Homer", "last_name": "Simpson",
|
||||
"phone_number": "123445", "language": "en"
|
||||
"phone_number": "+33612345678", "language": "en"
|
||||
}
|
||||
self.ajax_post(reverse("core:user_profile"), data)
|
||||
admin = models.User.objects.get(username="admin")
|
||||
|
||||
Reference in New Issue
Block a user