Skip to content
Django
11. Django Files Cheatsheet
Tests

Tests

Wrong tests -

from django.test import TestCase
from django.urls import reverse
from django.contrib.auth.models import User
from .forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm
 
# to test run: python manage.py test users1.tests
 
class UserAuthenticationTests(TestCase):
    def setUp(self):
        self.register_url = reverse('register')
        self.login_url = reverse('login')
        self.profile_url = reverse('profile')
        self.delete_user_url = reverse('delete_user')
        self.logout_url = reverse('logout')
        self.edit_profile_url = reverse('edit_profile')
        self.user = User.objects.create_user(
            username='testuser',
            password='testpassword'
        )
 
    def test_register_view(self):
        response = self.client.get(self.register_url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'users1/register.html')
 
        response = self.client.post(self.register_url, {
            'username': 'newuser',
            'password1': 'newpassword',
            'password2': 'newpassword'
        })
        self.assertEqual(response.status_code, 200)
        self.assertRedirects(response, reverse('login'))
 
    def test_profile_view(self):
        self.client.login(username='testuser', password='testpassword')
        response = self.client.get(self.profile_url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'users1/profile.html')
 
    def test_delete_user_view(self):
        self.client.login(username='testuser', password='testpassword')
        response = self.client.get(self.delete_user_url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'users1/delete_user.html')
 
        response = self.client.post(self.delete_user_url)
        self.assertEqual(response.status_code, 302)
        self.assertRedirects(response, reverse('index'))
 
    def test_logout_view(self):
        self.client.login(username='testuser', password='testpassword')
        response = self.client.get(self.logout_url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'users1/logout.html')
 
        response = self.client.post(self.logout_url)
        self.assertEqual(response.status_code, 302)
        self.assertRedirects(response, reverse('index'))
 
    def test_edit_profile_view(self):
        self.client.login(username='testuser', password='testpassword')
        response = self.client.get(self.edit_profile_url)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'users1/edit_profile.html')
 
        response = self.client.post(self.edit_profile_url, {
            'username': 'newusername',
            'email': 'newemail@example.com',
            'first_name': 'New',
            'last_name': 'User',
            'bio': 'New bio'
        })
        self.assertEqual(response.status_code, 302)
        self.assertRedirects(response, reverse('profile'))