2023-03-01 14:30:07 +00:00
|
|
|
|
from flask_babel import refresh
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
|
|
|
|
|
2024-04-14 18:31:43 +00:00
|
|
|
|
def test_preferred_language(testclient, logged_user, backend):
|
2023-02-05 17:57:18 +00:00
|
|
|
|
logged_user.preferred_language = None
|
2024-04-14 18:31:43 +00:00
|
|
|
|
backend.save(logged_user)
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
|
|
|
|
res = testclient.get("/profile/user", status=200)
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form = res.forms["baseform"]
|
|
|
|
|
assert form["preferred_language"].value == "auto"
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "en"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain("My profile")
|
|
|
|
|
res.mustcontain(no="Mon profil")
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form["preferred_language"] = "fr"
|
|
|
|
|
res = form.submit(name="action", value="edit-profile")
|
2023-03-01 14:30:07 +00:00
|
|
|
|
assert res.flashes == [("success", "Le profil a été mis à jour avec succès.")]
|
|
|
|
|
res = res.follow()
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form = res.forms["baseform"]
|
2024-04-14 20:51:58 +00:00
|
|
|
|
backend.reload(logged_user)
|
2023-02-05 17:57:18 +00:00
|
|
|
|
assert logged_user.preferred_language == "fr"
|
2023-07-20 16:43:28 +00:00
|
|
|
|
assert form["preferred_language"].value == "fr"
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "fr"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain(no="My profile")
|
|
|
|
|
res.mustcontain("Mon profil")
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form["preferred_language"] = "en"
|
|
|
|
|
res = form.submit(name="action", value="edit-profile")
|
2023-05-30 07:44:11 +00:00
|
|
|
|
assert res.flashes == [("success", "Profile updated successfully.")]
|
2023-03-01 14:30:07 +00:00
|
|
|
|
res = res.follow()
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form = res.forms["baseform"]
|
2024-04-14 20:51:58 +00:00
|
|
|
|
backend.reload(logged_user)
|
2023-02-05 17:57:18 +00:00
|
|
|
|
assert logged_user.preferred_language == "en"
|
2023-07-20 16:43:28 +00:00
|
|
|
|
assert form["preferred_language"].value == "en"
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "en"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain("My profile")
|
|
|
|
|
res.mustcontain(no="Mon profil")
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form["preferred_language"] = "auto"
|
|
|
|
|
res = form.submit(name="action", value="edit-profile")
|
2023-05-30 07:44:11 +00:00
|
|
|
|
assert res.flashes == [("success", "Profile updated successfully.")]
|
2023-03-01 14:30:07 +00:00
|
|
|
|
res = res.follow()
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form = res.forms["baseform"]
|
2024-04-14 20:51:58 +00:00
|
|
|
|
backend.reload(logged_user)
|
2023-02-05 17:57:18 +00:00
|
|
|
|
assert logged_user.preferred_language is None
|
2023-07-20 16:43:28 +00:00
|
|
|
|
assert form["preferred_language"].value == "auto"
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "en"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain("My profile")
|
|
|
|
|
res.mustcontain(no="Mon profil")
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
|
|
|
|
|
2024-04-14 18:31:43 +00:00
|
|
|
|
def test_form_translations(testclient, logged_user, backend):
|
2023-05-11 14:02:32 +00:00
|
|
|
|
logged_user.preferred_language = "fr"
|
2024-04-14 18:31:43 +00:00
|
|
|
|
backend.save(logged_user)
|
2023-04-02 11:24:06 +00:00
|
|
|
|
|
|
|
|
|
res = testclient.get("/profile/user", status=200)
|
2023-07-20 16:43:28 +00:00
|
|
|
|
form = res.forms["baseform"]
|
|
|
|
|
form["phone_numbers-0"] = "invalid"
|
|
|
|
|
res = form.submit(name="action", value="edit-profile")
|
2023-04-02 11:24:06 +00:00
|
|
|
|
|
2023-07-20 16:43:28 +00:00
|
|
|
|
res.mustcontain(no="Not a valid phone number")
|
2024-09-11 07:33:42 +00:00
|
|
|
|
res.mustcontain("N’est pas un numéro de téléphone valid")
|
2023-04-02 11:24:06 +00:00
|
|
|
|
|
|
|
|
|
|
2024-04-14 18:31:43 +00:00
|
|
|
|
def test_language_config(testclient, logged_user, backend):
|
2023-02-05 17:57:18 +00:00
|
|
|
|
logged_user.preferred_language = None
|
2024-04-14 18:31:43 +00:00
|
|
|
|
backend.save(logged_user)
|
2022-12-04 10:53:37 +00:00
|
|
|
|
|
2022-11-20 21:12:18 +00:00
|
|
|
|
res = testclient.get("/profile/user", status=200)
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "en"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain("My profile")
|
|
|
|
|
res.mustcontain(no="Mon profil")
|
2022-11-20 21:12:18 +00:00
|
|
|
|
|
2023-12-18 17:06:03 +00:00
|
|
|
|
testclient.app.config["CANAILLE"]["LANGUAGE"] = "fr"
|
2023-03-01 14:30:07 +00:00
|
|
|
|
refresh()
|
2022-11-20 21:12:18 +00:00
|
|
|
|
res = testclient.get("/profile/user", status=200)
|
2023-01-29 22:06:12 +00:00
|
|
|
|
assert res.pyquery("html")[0].attrib["lang"] == "fr"
|
2023-03-16 15:25:14 +00:00
|
|
|
|
res.mustcontain(no="My profile")
|
|
|
|
|
res.mustcontain("Mon profil")
|