From 565b003511296ad64a1710aa387afa66b3415195 Mon Sep 17 00:00:00 2001 From: Akromjon <152626511+RustamovAkrom@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:13:49 +0500 Subject: [PATCH] add users testing --- apps/users/models.py | 2 +- apps/users/tests.py | 26 +++++++++++++++++--------- apps/users/views.py | 17 ++++++++--------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/apps/users/models.py b/apps/users/models.py index d1842b5..7c7b22d 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -4,7 +4,7 @@ from django.db import models -class User(AbstractUser, TimestempedAbstractModel): +class User(TimestempedAbstractModel, AbstractUser): email = models.EmailField(_("email address"), unique=True) @property diff --git a/apps/users/tests.py b/apps/users/tests.py index a8dca2a..2aba761 100644 --- a/apps/users/tests.py +++ b/apps/users/tests.py @@ -1,15 +1,23 @@ from django.test import TestCase +from django.urls import reverse from .models import User, UserProfile class TestUsers(TestCase): - def setUp(self) -> None: - User.objects.create( - username="User", - email="user@example.com", - password="password" - ) - return super().setUp() - - \ No newline at end of file + + def test_user_register_page(self): + response = self.client.get(reverse("users:register")) + + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, "auth/register.html") + self.assertContains(response, "Register") + # self.assertRedirects(response, reverse("users:login")) + + def test_user_login_page(self): + response = self.client.get(reverse("users:login")) + + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, "auth/login.html") + self.assertContains(response, "Login") + # self.assertRedirects(response, reverse("blog:home")) \ No newline at end of file diff --git a/apps/users/views.py b/apps/users/views.py index 6d42695..22cc3c8 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -1,5 +1,5 @@ from django.shortcuts import render, redirect, get_object_or_404 -from django.urls import reverse +from django.urls import reverse, reverse_lazy from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib import messages from django.views import View @@ -31,11 +31,11 @@ def post(self, request): if form.is_valid(): form.save() messages.success(request, "User succesfully registered") - return redirect(reverse("users:login")) + return redirect(reverse_lazy("users:login")) messages.warning(request, "Invalid registration fields!") - return render(request, "auth/register.html", {"form": form}) - + return redirect(reverse_lazy("auth:register")) + class LoginPageView(CustomHtmxMixin, View): template_name = "auth/login.html" @@ -59,7 +59,7 @@ def post(self, request): if user is not None: - response = redirect(reverse("blog:home")) + response = redirect(reverse_lazy("blog:home")) # Login for jwt response = get_jwt_login_response(response, user) @@ -67,11 +67,10 @@ def post(self, request): messages.success(request, f"You are logged in as { username }") return response - else: - messages.error(request, "Invalid username or password.") - return redirect(reverse("users:login")) + messages.error(request, "Invalid username or password.") - return render(request, "auth/login.html", {"form": form}) + return redirect(reverse_lazy("users:login")) + class LogoutPageView(CustomHtmxMixin, LoginRequiredMixin, View):