unit tests: user creation without password

This commit is contained in:
Éloi Rivard 2022-12-24 02:52:05 +01:00
parent a811d22467
commit 1df1c89ea0
3 changed files with 27 additions and 9 deletions

View file

@ -382,9 +382,11 @@ def profile_create(current_app, form):
for group in groups: for group in groups:
group.add_member(user) group.add_member(user)
if not form["password1"].data or user.set_password(form["password1"].data): if form["password1"].data:
flash(_("User account creation succeed."), "success") user.set_password(form["password1"].data)
user.save()
flash(_("User account creation succeed."), "success")
user.save()
return user return user
@ -491,11 +493,11 @@ def profile_edit(editor, username):
user["jpegPhoto"] = None user["jpegPhoto"] = None
if ( if (
"password1" not in request.form "password1" in request.form
or not form["password1"].data and form["password1"].data
or user.set_password(form["password1"].data) and request.form["action"] == "edit"
) and request.form["action"] == "edit": ):
flash(_("Profile updated successfuly."), "success") user.set_password(form["password1"].data)
if ( if (
"preferredLanguage" in request.form "preferredLanguage" in request.form
@ -503,6 +505,7 @@ def profile_edit(editor, username):
): ):
user.preferredLanguage = None user.preferredLanguage = None
flash(_("Profile updated successfuly."), "success")
user.save() user.save()
return redirect(url_for("account.profile_edition", username=username)) return redirect(url_for("account.profile_edition", username=username))

View file

@ -100,7 +100,6 @@ class User(LDAPObject):
None, None,
password.encode("utf-8"), password.encode("utf-8"),
) )
return True
@property @property
def name(self): def name(self):

View file

@ -258,6 +258,7 @@ def test_user_creation_edition_and_deletion(
# User have been created # User have been created
res = res.form.submit(name="action", value="edit", status=302).follow(status=200) res = res.form.submit(name="action", value="edit", status=302).follow(status=200)
assert "User account creation succeed." in res
george = User.get("george") george = User.get("george")
george.load_groups() george.load_groups()
foo_group.reload() foo_group.reload()
@ -295,6 +296,21 @@ def test_user_creation_edition_and_deletion(
assert "george" not in res.text assert "george" not in res.text
def test_user_creation_without_password(testclient, logged_moderator):
res = testclient.get("/profile", status=200)
res.form["uid"] = "george"
res.form["sn"] = "Abitbol"
res.form["mail"] = "george@abitbol.com"
res = res.form.submit(name="action", value="edit", status=302).follow(status=200)
assert "User account creation succeed." in res
george = User.get("george")
assert george.uid[0] == "george"
assert not george.userPassword
george.delete()
def test_user_creation_form_validation_failed( def test_user_creation_form_validation_failed(
testclient, logged_moderator, foo_group, bar_group testclient, logged_moderator, foo_group, bar_group
): ):