Unit Testing a Django Form with a FileField
django, django-forms, unit-testing
Solution
So far I have found this way that works
from django.core.files.uploadedfile import SimpleUploadedFile
...
def test_form(self):
upload_file = open('path/to/file', 'rb')
post_dict = {'title': 'Test Title'}
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(post_dict, file_dict)
self.assertTrue(form.is_valid())
Problem
I have a form like: ``` #forms.py from django import forms class MyForm(forms.Form): title = forms.CharField() file = forms.FileField() #tests.py from django.test import TestCase from forms import MyForm class FormTestCase(TestCase) def test_form(self): upload_file = open('path/to/file', 'r') post_dict = {'title': 'Test Title'} file_dict = {} #?????? form = MyForm(post_dict, file_dict) self.assertTrue(form.is_valid()) ``` How do I construct the file_dict to pass upload_file to the form?