使用FileField对Django表单进行单元测试

我有一个像这样的表格:

#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())

如何构造file_dict以将upload_file传递到表单?

回答:

到目前为止,我发现这种方式有效

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())

以上是 使用FileField对Django表单进行单元测试 的全部内容, 来源链接: utcz.com/qa/411411.html

回到顶部