django-imagekit/tests/utils.py

82 lines
1.8 KiB
Python
Raw Normal View History

2013-01-09 04:36:22 +00:00
from bs4 import BeautifulSoup
2012-02-18 06:56:17 +00:00
import os
from django.conf import settings
2013-01-24 03:39:14 +00:00
from django.core.files import File
2013-01-09 04:36:22 +00:00
from django.template import Context, Template
2013-03-15 04:49:44 +00:00
from imagekit.cachefiles.backends import Simple, CacheFileState
2012-07-18 21:21:47 +00:00
from imagekit.lib import Image, StringIO
2013-03-15 02:23:47 +00:00
from nose.tools import assert_true, assert_false
2012-07-18 21:21:47 +00:00
import pickle
2013-03-15 04:49:44 +00:00
from tempfile import NamedTemporaryFile
from .models import Photo
2012-02-18 06:56:17 +00:00
def get_image_file():
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
"""
path = os.path.join(settings.MEDIA_ROOT, 'lenna.png')
return open(path, 'r+b')
2013-03-15 04:49:44 +00:00
def get_unique_image_file():
file = NamedTemporaryFile()
file.write(get_image_file().read())
return file
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()
2013-01-24 03:39:14 +00:00
img = File(get_image_file())
instance.original_image.save(image_name, img)
2012-02-18 06:56:17 +00:00
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)
2013-01-09 04:36:22 +00:00
def render_tag(ttag):
img = get_image_file()
template = Template('{%% load imagekit %%}%s' % ttag)
context = Context({'img': img})
return template.render(context)
def get_html_attrs(ttag):
return BeautifulSoup(render_tag(ttag)).img.attrs
2013-03-15 02:23:47 +00:00
def assert_file_is_falsy(file):
assert_false(bool(file), 'File is not falsy')
def assert_file_is_truthy(file):
assert_true(bool(file), 'File is not truthy')
2013-03-15 04:49:44 +00:00
class DummyAsyncCacheFileBackend(Simple):
"""
2013-07-17 01:02:48 +00:00
A cache file backend meant to simulate async generation.
2013-03-15 04:49:44 +00:00
"""
def generate(self, file, force=False):
2013-07-17 01:02:48 +00:00
pass