Python 如何使用ImageSpecField测试Django模型?
我得到了以下模型:Python 如何使用ImageSpecField测试Django模型?,python,django,django-imagekit,Python,Django,Django Imagekit,我得到了以下模型: class Room(models.Model): order = models.SmallIntegerField() name = models.CharField(max_length=20) background = models.ImageField(upload_to='room_background', blank=False, null=False) background_preview = ImageSpecField(sou
class Room(models.Model):
order = models.SmallIntegerField()
name = models.CharField(max_length=20)
background = models.ImageField(upload_to='room_background', blank=False, null=False)
background_preview = ImageSpecField(source='background', processors=[ResizeToFit(300, 400)])
def serialize(self):
room_dict = model_to_dict(self)
room_dict['background_preview_url'] = self.background_preview.url
return room_dict
我没有直接在视图上使用房间对象,而是将它们转换为dict,并使用“background\u preview\u url”键进行扩展
现在我想使用序列化的room对象编写一些Django测试。问题是如果我这样做:
test_room = Room(order=1)
test_room.save
test_room.serialize()
ImageKit抛出了一个MissingSource错误,因为在我的测试室中没有可以生成预览的背景图像
我如何在考试中更好地克服这个问题?我应该带一个背景图片的固定装置吗?
还是应该为_test()方法编写第二个序列化_?
或者,我可以将房间()实例化为背景预览字段的一些测试值?-我试过了,但是直接聊天室(background\u preview='fake\u url')不起作用
谢谢。对我有效的解决方案:
from django.core.files.uploadedfile import SimpleUploadedFile
test_room.image = SimpleUploadedFile(name='foo.gif', content=b'GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00')
test_room.save