migrations run for lyric models; authentication & views & their tests now account more fully for uuid over email as pk

This commit is contained in:
Disco DeDisco
2026-01-30 21:33:30 -05:00
parent f002cc5c84
commit ae63861adb
6 changed files with 60 additions and 10 deletions

View File

@@ -47,10 +47,10 @@ class GetUserTest(TestCase):
def test_gets_user_by_uuid(self):
User.objects.create(email="fantaman@example.com")
desired_user = User.objects.create(email="discoman@example.com")
found_user = PasswordlessAuthenticationBackend().get_user("discoman@example.com")
found_user = PasswordlessAuthenticationBackend().get_user(desired_user.id)
self.assertEqual(found_user, desired_user)
def test_returns_None_if_no_user_with_that_email(self):
self.assertIsNone(
PasswordlessAuthenticationBackend().get_user("discoman@example.com")
PasswordlessAuthenticationBackend().get_user(999)
)

View File

@@ -1,6 +1,7 @@
from django.contrib import auth
from django.test import TestCase
from unittest import mock
from ..models import Token
from ..models import Token, User
class SendLoginEmailViewTest(TestCase):
def test_redirects_to_home_page(self):
@@ -58,3 +59,14 @@ class LoginViewTest(TestCase):
def test_redirects_to_home_page(self):
response = self.client.get("/apps/lyric/login?token=abc123")
self.assertRedirects(response, "/")
def test_logs_in_if_given_valid_token(self):
anon_user = auth.get_user(self.client)
self.assertEqual(anon_user.is_authenticated, False)
token = Token.objects.create(email="discoman@example.com")
self.client.get(f"/apps/lyric/login?token={token.uid}", follow=True)
user = auth.get_user(self.client)
self.assertEqual(user.is_authenticated, True)
self.assertEqual(user.email, "discoman@example.com")