Jas*_*sta 12 python django django-testing
是否可以生成用于测试目的的内存中图像?
这是我目前的代码:
def test_issue_add_post(self):
url = reverse('issues_issue_add')
image = 'cover.jpg'
data = {
'title': 'Flying Cars',
'cover': image,
}
response = self.client.post(url, data)
self.assertEqual(response.status_code, 302)
Run Code Online (Sandbox Code Playgroud)
Edu*_*nec 14
要生成200x200纯红色测试图像:
import Image
size = (200,200)
color = (255,0,0,0)
img = Image.new("RGBA",size,color)
Run Code Online (Sandbox Code Playgroud)
要将其转换为类文件对象,则:
import StringIO
f = StringIO.StringIO(img.tostring())
Run Code Online (Sandbox Code Playgroud)
http://effbot.org/imagingbook/image.htm
dsh*_*hap 11
在Django 1.5中,Jason接受的答案对我不起作用
假设生成的文件ImageField要从单元测试中保存到模型中,我需要更进一步,创建一个ContentFile以使其工作:
from PIL import Image
from StringIO import StringIO
from django.core.files.base import ContentFile
image_file = StringIO()
image = Image.new('RGBA', size=(50,50), color=(256,0,0))
image.save(image_file, 'png')
image_file.seek(0)
django_friendly_file = ContentFile(image_file.read(), 'test.png')
Run Code Online (Sandbox Code Playgroud)
感谢爱德华多的帮助,我找到了一个可行的解决方案。
from StringIO import StringIO
import Image
file = StringIO()
image = Image.new("RGBA", size=(50,50), color=(256,0,0))
image.save(file, 'png')
file.name = 'test.png'
file.seek(0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4616 次 |
| 最近记录: |