test: Add more assertions for reset password

This commit is contained in:
Suraj Shetty 2021-08-20 22:35:01 +05:30
parent 9781fb758f
commit 6f72e79f1a
2 changed files with 28 additions and 5 deletions

View file

@ -1,11 +1,12 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
import frappe, unittest
import json
from frappe.model.delete_doc import delete_doc
from frappe.utils import get_url
from frappe.core.doctype.user.user import (test_password_strength,
extract_mentions, sign_up, update_password, verify_password)
extract_mentions, sign_up, update_password, verify_password, reset_password)
from frappe.frappeclient import FrappeClient
from unittest.mock import patch
@ -347,6 +348,30 @@ class TestUser(unittest.TestCase):
# reset password
update_password(old_password, old_password=new_password)
# test API endpoint
with patch.object(user_module.frappe, 'sendmail') as sendmail:
frappe.clear_messages()
test_user = frappe.get_doc("User", "test2@example.com")
self.assertEqual(reset_password(user="test2@example.com"), None)
test_user.reload()
self.assertEqual(update_password(new_password, key=test_user.reset_password_key), "/")
update_password(old_password, old_password=new_password)
self.assertEqual(json.loads(frappe.message_log[0]), {"message": "Password reset instructions have been sent to your email"})
sendmail.assert_called_once()
self.assertEqual(sendmail.call_args[1]["recipients"], "test2@example.com")
self.assertEqual(reset_password(user="test2@example.com"), None)
self.assertEqual(reset_password(user="Administrator"), "not allowed")
self.assertEqual(reset_password(user="random"), "not found")
def test_user_onload_modules(self):
from frappe.desk.form.load import getdoc
from frappe.config import get_modules_from_all_apps
frappe.response.docs = []
getdoc("User", "Administrator")
doc = frappe.response.docs[0]
self.assertListEqual(doc.get("__onload").get('all_modules', []),
[m.get("module_name") for m in get_modules_from_all_apps()])
def test_password_verification(self):

View file

@ -2,6 +2,7 @@
# Copyright (c) 2019, Frappe Technologies and Contributors
# See license.txt
import frappe
from frappe.core.doctype.user.user import get_system_users
from frappe.desk.form.assign_to import add as assign_task
import unittest
@ -54,7 +55,4 @@ def get_todo():
return frappe.get_cached_doc('ToDo', res[0].name)
def get_user():
users = frappe.db.get_all('User',
filters={'name': ('not in', ['Administrator', 'Guest']), 'enabled': 1},
fields='name', limit=1)
return users[0].name
return get_system_users(limit=1)[0]