使用 FileField 对 Django 表单进行单元测试 [英] Unit Testing a Django Form with a FileField
本文介绍了使用 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 传递给表单?
How do I construct the file_dict to pass upload_file to the form?
推荐答案
到目前为止,我发现这种方法有效
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())
这篇关于使用 FileField 对 Django 表单进行单元测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文