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 inspect form.errors for invalid cases.
  • Prefer ModelForm where 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
Testing URL Resolution
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.