Sometimes it's handy to be able to generate an in memory image in your tests. This is faster than using an image from the filesystem, but the biggest benefit for me is not needing to spend ages wondering where exactly in your project you should store your single test image.
It wasn't obvious to me how to do this, but here's a snippet for anyone who wants it. I've tested this using Pillow (I guess it would work with PIL) with both Python 2.7 and Python 3 (3.3).
from io import BytesIO from PIL import Image def create_test_image(): file = BytesIO() image = Image.new('RGBA', size=(50, 50), color=(155, 0, 0)) image.save(file, 'png') file.name = 'test.png' file.seek(0) return file
In my WebTest Django form test, I'd use it something like this:
form = response.forms['some_form'] form['picture'] = ('picture', create_test_image().read()) form.submit()