from django.test import TestCase from django.urls import reverse from django.contrib.auth import get_user_model User = get_user_model() class LoginViewTests(TestCase): def setUp(self): self.username = 'testuser' self.password = 'testpassword' self.user = User.objects.create_user(username=self.username, password=self.password) def test_login_view_redirects_authenticated_user(self): self.client.login(username=self.username, password=self.password) response = self.client.get(reverse('hello_world')) self.assertEqual(response.status_code, 200) def test_login_view_renders_login_template_for_anonymous_user(self): response = self.client.get(reverse('login')) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'login.html') def test_logout_redirects_to_login(self): self.client.login(username=self.username, password=self.password) response = self.client.post(reverse('logout')) self.assertRedirects(response, reverse('login'))