在Django中无法在运行时设置UploadedFile对象的大小

时间:2019-05-15 14:40:24

标签: python django unit-testing

UploadedFile的参考文档。 @fixture的参考。 尝试在测试用例中更改文件大小。

 from django.core.files.uploadedfile import UploadedFile

 class Mixin(object):
    @fixture
    def photo(self):
        file_obj = StringIO()
        image = Image.new("RGBA", size=(50, 50), color=(256, 0, 0))
        image.save(file_obj, "png")
        file_obj.seek(0)
        return UploadedFile(file_obj, name="test.png", content_type="image/jpg", size=2000000)

我尝试更改测试用例的文件大小 self.photo.size = 10000001

class Test(Mixin):
    @fixture
    def data(self):
        return {"photo": self.photo}

    def test_invalid_photo_size(self):
        self.photo.size = 10000001
        response = self.client.post(reverse("registration_register"), data=self.data)

但是当我以表格的形式获取照片的价值时,我得到的价值即144。 self.cleaned_data.get('photo').size

它应该已经以表格形式返回了10000001。我不清楚为什么会这样?除了从头开始创建新照片以外,任何其他方法。

0 个答案:

没有答案