Testing Forms Validation
A snippet showing how to test Django form validation.
# models.py
from django.db import models
class Signup(models.Model):
email = models.EmailField(unique=True)
# admin.py
from django.contrib import admin
from .models import Signup
@admin.register(Signup)
class SignupAdmin(admin.ModelAdmin):
list_display = ("email",)
# Result (forms.py )
from django import forms
from .models import Signup
class SignupForm(forms.ModelForm):
class Meta:
model = Signup
fields = ["email"]
# tests/test_forms.py
from django.test import TestCase
from .forms import SignupForm
class SignupFormTest(TestCase):
def test_valid(self):
form = SignupForm(data={"email": "[email protected]"})
self.assertTrue(form.is_valid())
def test_invalid(self):
form = SignupForm(data={"email": "bad"})
self.assertFalse(form.is_valid())
self.assertIn("email", form.errors)
Explanation:
-
Assert
form.is_valid()and inspectform.errorsfor invalid cases. -
Prefer
ModelFormwhere possible to match model constraints.
- Category Testing
- Total Views 370
- Last Modified 01 March, 2026
- Tags #testing #forms #validation #unittest
Previous snippet
Model Test Example
Next snippet