はてなの金次郎

とあるエンジニアの技術系ブログ

【Django】フォームのテストの書き方

from django import forms

class NameForm(forms.Form):
    name = forms.CharField(label='Your name', max_length=100)

上記の NameForm というFormのテストをpytestで書いてみます。

import pytest

from .forms import NameForm


@pytest.mark.parametrize('name,is_valid', [
    ('name', True),
    (1, False),
    (None, False),
])
def test_nameform(name, is_valid):
    form_data = {
        'name': name
    }
    form = NameForm(data=form_data)
    assert form.is_valid() is is_valid

is_valid() という有効なデータかどうかを検証するメソッドを利用すれば簡単にテストがかけるという紹介でした。