diff --git a/ihatemoney/tests/budget_test.py b/ihatemoney/tests/budget_test.py index ef170a1d..07f337aa 100644 --- a/ihatemoney/tests/budget_test.py +++ b/ihatemoney/tests/budget_test.py @@ -512,7 +512,7 @@ class BudgetTestCase(IhatemoneyTestCase): self.assertTrue(session["is_admin"]) def test_authentication_with_upper_case(self): - self.create_project("Raclette") + self.post_project("Raclette") # try to connect with the right credentials should work with self.app.test_client() as c: @@ -521,8 +521,8 @@ class BudgetTestCase(IhatemoneyTestCase): ) self.assertNotIn("Authentication", resp.data.decode("utf-8")) - self.assertIn("Raclette", session) - self.assertTrue(session["Raclette"]) + self.assertIn("raclette", session) + self.assertTrue(session["raclette"]) def test_admin_authentication(self): self.app.config["ADMIN_PASSWORD"] = generate_password_hash("pass") diff --git a/ihatemoney/tests/common/ihatemoney_testcase.py b/ihatemoney/tests/common/ihatemoney_testcase.py index 86bc25c8..5ad0a56a 100644 --- a/ihatemoney/tests/common/ihatemoney_testcase.py +++ b/ihatemoney/tests/common/ihatemoney_testcase.py @@ -51,31 +51,36 @@ class BaseTestCase(TestCase): ) def post_project( - self, id, follow_redirects=True, default_currency="XXX", name=None + self, + id, + follow_redirects=True, + default_currency="XXX", + name=None, + password=None, ): """Create a fake project""" - if name is None: - name = id + name = name or id + password = password or id # create the project return self.client.post( "/create", data={ "name": name, "id": id, - "password": id, + "password": password, "contact_email": f"{id}@notmyidea.org", "default_currency": default_currency, }, follow_redirects=follow_redirects, ) - def create_project(self, id, default_currency="XXX", name=None): - if name is None: - name = str(id) + def create_project(self, id, default_currency="XXX", name=None, password=None): + name = name or str(id) + password = password or id project = models.Project( id=id, name=name, - password=generate_password_hash(id), + password=generate_password_hash(password), contact_email=f"{id}@notmyidea.org", default_currency=default_currency, ) diff --git a/ihatemoney/web.py b/ihatemoney/web.py index 2b365c1f..2b38bfc9 100644 --- a/ihatemoney/web.py +++ b/ihatemoney/web.py @@ -136,8 +136,9 @@ def pull_project(endpoint, values): return if not values: values = {} - project_id = values.pop("project_id", None) - if project_id: + entered_project_id = values.pop("project_id", None) + if entered_project_id: + project_id = entered_project_id.lower() project = Project.query.get(project_id) if not project: raise Redirect303(url_for(".create_project", project_id=project_id)) @@ -225,7 +226,7 @@ def authenticate(project_id=None): if not form.id.data and request.args.get("project_id"): form.id.data = request.args["project_id"] - project_id = form.id.data + project_id = form.id.data.lower() if form.id.data else None project = Project.query.get(project_id) if project_id is not None else None if not project: