たとえばこんなフォームのテストをしたいとき
from django import forms class HogeForm(forms.Form): name = forms.CharField(max_length=100) image = forms.ImageField(upload_to='images/')
テスト用のダミー画像を用意するのもいいが、ダミー画像なしでテストする方法として、PILとSimpleUploadedFileを使ってアップロードされた画像ファイルっぽいものを作ってテストできる。
使い方
from django.test import TestCase from your_app_name.forms import HogeForm from inmemory_image_generator import get_image_dict class HogeTest(TestCase): def test_hoge(self): img_dict = get_image_dict() param = {'name': 'foo'} form = HogeForm(param, img_dict) self.assertTrue(form.is_valid())
こんな感じでテストできて便利