django-imagekit/tests/utils.py

58 lines
1.2 KiB
Python
Raw Normal View History

2012-02-18 06:56:17 +00:00
import os
from django.core.files.base import ContentFile
2012-07-18 21:21:47 +00:00
from imagekit.lib import Image, StringIO
from tempfile import NamedTemporaryFile
2012-02-18 06:56:17 +00:00
from .models import Photo
2012-07-18 21:21:47 +00:00
import pickle
2012-02-18 06:56:17 +00:00
def _get_image_file(file_factory):
2012-02-18 06:56:17 +00:00
"""
See also:
http://en.wikipedia.org/wiki/Lenna
http://sipi.usc.edu/database/database.php?volume=misc&image=12
"""
2012-11-06 02:56:05 +00:00
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'assets', 'lenna-800x600-white-border.jpg')
tmp = file_factory()
2012-11-06 02:56:05 +00:00
tmp.write(open(path, 'r+b').read())
2012-02-18 06:56:17 +00:00
tmp.seek(0)
return tmp
def get_image_file():
return _get_image_file(StringIO)
def get_named_image_file():
return _get_image_file(NamedTemporaryFile)
2012-11-06 02:56:05 +00:00
def create_image():
return Image.open(get_image_file())
2012-02-18 06:56:17 +00:00
def create_instance(model_class, image_name):
instance = model_class()
2012-11-06 02:56:05 +00:00
img = get_image_file()
2012-02-18 06:56:17 +00:00
file = ContentFile(img.read())
instance.original_image = file
instance.original_image.save(image_name, file)
instance.save()
img.close()
return instance
def create_photo(name):
return create_instance(Photo, name)
2012-07-18 21:21:47 +00:00
def pickleback(obj):
pickled = StringIO()
pickle.dump(obj, pickled)
pickled.seek(0)
return pickle.load(pickled)