DRF测试多张图片上传

时间:2021-06-16 08:43:32

标签: django unit-testing testing file-upload django-rest-framework

我正在尝试测试将多个图像上传到我的服务器。这是序列化程序:

class ImageSerializer(serializers.ModelSerializer):
    image = serializers.ListField(
        child=serializers.ImageField(allow_empty_file=True)
    )

图像工厂:

def get_image():
    image = Image.new("RGB", (2000, 2000))
    file = tempfile.NamedTemporaryFile(suffix=".jpg")
    image.save(file)
    return file

测试:

    def test_upload_multiple_images(self):
      self.image = get_image()
      with open(self.image.name, "rb") as file:
        payload = {
            "image": [file, file]
        }
        response = self.client.post(
            reverse("gallery-list", args=[self.item.pk]),
            data=payload,
            format="multipart"
        )

通过 Postman 进行测试时,阵列中的图像被正确保存。但是,在使用测试用例时,我从响应中收到以下消息:

{'image': [{'message': 'The submitted file is empty.', 'code': 'empty'}]}

在添加 allow_empty_file=True 之前,返回了其中两条消息。 有没有人知道为什么会发生这种情况?

0 个答案:

没有答案