Generating an in memory image for tests in Python

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.

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()