diff --git a/src/apps/lyric/tests/test_views.py b/src/apps/lyric/tests/test_views.py index 1ceb3df..4d28b36 100644 --- a/src/apps/lyric/tests/test_views.py +++ b/src/apps/lyric/tests/test_views.py @@ -1,7 +1,7 @@ from django.contrib import auth from django.test import TestCase from unittest import mock -from ..models import Token, User +from ..models import Token class SendLoginEmailViewTest(TestCase): def test_redirects_to_home_page(self): @@ -78,6 +78,14 @@ class LoginViewTest(TestCase): message = list(response.context["messages"])[0] self.assertEqual( message.message, - "Invalid login link!—please request a new one", + "Invalid login link!—please request another", ) self.assertEqual(message.tags, "error") + + @mock.patch("apps.lyric.views.auth") + def test_calls_authenticate_with_uid_from_get_request(self, mock_auth): + self.client.get("/apps/lyric/login?token=abc123") + self.assertEqual( + mock_auth.authenticate.call_args, + mock.call(uid="abc123") + ) diff --git a/src/apps/lyric/views.py b/src/apps/lyric/views.py index e16db59..bbd3a5e 100644 --- a/src/apps/lyric/views.py +++ b/src/apps/lyric/views.py @@ -24,11 +24,8 @@ def send_login_email(request): return redirect("/") def login(request): - uid = request.GET.get("token") - user = auth.authenticate(request, uid=uid) - if user is not None: - user.backend = "apps.lyric.authentication.PasswordlessAuthenticationBackend" + if user := auth.authenticate(uid=request.GET["token"]): auth.login(request, user) else: - messages.error(request, "Invalid login link!—please request a new one") + messages.error(request, "Invalid login link!—please request another") return redirect("/") diff --git a/src/functional_tests/test_simple_list_creation.py b/src/functional_tests/test_simple_list_creation.py index 62a41af..dc562c2 100644 --- a/src/functional_tests/test_simple_list_creation.py +++ b/src/functional_tests/test_simple_list_creation.py @@ -10,9 +10,9 @@ class NewVisitorTest(FunctionalTest): def test_can_start_a_todo_list(self): self.browser.get(self.live_server_url) - self.assertIn('Dashboard', self.browser.title) + self.assertIn('Earthman RPG', self.browser.title) header_text = self.browser.find_element(By.TAG_NAME, 'h1').text - self.assertIn('Dashboard', header_text) + self.assertIn('Welcome', header_text) inputbox = self.get_item_input_box() self.assertEqual(inputbox.get_attribute('placeholder'), 'Enter a to-do item') diff --git a/src/templates/core/base.html b/src/templates/core/base.html index 22ec788..ed58847 100644 --- a/src/templates/core/base.html +++ b/src/templates/core/base.html @@ -14,7 +14,9 @@