如何在 Django Rest Framework 上测试图片上传

问题描述

我在挣扎。问题在于单元测试(“test.py”),我想出了如何使用 tempfilePIL 上传图像,但这些临时图像永远不会被删除。我考虑创建一个临时目录,然后使用 os.remove 删除该 temp_dir,但是根据型号将图像上传到不同的媒体目录,所以我真的不知道如何发布 temp_images然后删除它们。

这是我的models.py

class Noticia(models.Model):
  ...
  img = models.ImageField(upload_to="noticias",storage=OverwriteStorage(),default="noticias/tanque_arma3.jpg")
  ...

test.py

def temporary_image():
    import tempfile
    from PIL import Image

    image = Image.new('RGB',(100,100))
    tmp_file = tempfile.NamedTemporaryFile(suffix='.jpg',prefix="test_img_")
    image.save(tmp_file,'jpeg')
    tmp_file.seek(0)
    return tmp_file

class NoticiaTest(APITestCase):
    def setUp(self):
        ...
        url = reverse('api:noticia-create')
        data = {'usuario': usuario.pk,"titulo":"test","subtitulo":"test","descripcion":"test","img": temporary_image()}
        response = client.post(url,data,format="multipart")

        ...

所以,总而言之,问题是,考虑到这些文件必须严格上传到这些目录中,我如何从不同目录中删除临时文件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)