mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-03-17 05:40:25 +00:00
The Lenna image used in image processing tests is considered problematic due to its unclear copyright status. Right now it is considered to be "overlooked" by the copyright holder Playboy. A suitable replacement image is already provided in the libav sources which is licensed under the Expat (MIT) license and thus truly free. This replaces the Lenna image with the one from the libav project.
84 lines
2 KiB
Python
84 lines
2 KiB
Python
from bs4 import BeautifulSoup
|
|
import os
|
|
from django.conf import settings
|
|
from django.core.files import File
|
|
from django.template import Context, Template
|
|
from imagekit.cachefiles.backends import Simple, CacheFileState
|
|
from imagekit.lib import Image, StringIO
|
|
from nose.tools import assert_true, assert_false
|
|
import pickle
|
|
from tempfile import NamedTemporaryFile
|
|
from .models import Photo
|
|
|
|
|
|
def get_image_file():
|
|
"""
|
|
See also:
|
|
|
|
http://en.wikipedia.org/wiki/Lenna
|
|
http://sipi.usc.edu/database/database.php?volume=misc&image=12
|
|
https://lintian.debian.org/tags/license-problem-non-free-img-lenna.html
|
|
https://github.com/libav/libav/commit/8895bf7b78650c0c21c88cec0484e138ec511a4b
|
|
"""
|
|
path = os.path.join(settings.MEDIA_ROOT, 'reference.png')
|
|
return open(path, 'r+b')
|
|
|
|
|
|
def get_unique_image_file():
|
|
file = NamedTemporaryFile()
|
|
file.write(get_image_file().read())
|
|
return file
|
|
|
|
|
|
def create_image():
|
|
return Image.open(get_image_file())
|
|
|
|
|
|
def create_instance(model_class, image_name):
|
|
instance = model_class()
|
|
img = File(get_image_file())
|
|
instance.original_image.save(image_name, img)
|
|
instance.save()
|
|
img.close()
|
|
return instance
|
|
|
|
|
|
def create_photo(name):
|
|
return create_instance(Photo, name)
|
|
|
|
|
|
def pickleback(obj):
|
|
pickled = StringIO()
|
|
pickle.dump(obj, pickled)
|
|
pickled.seek(0)
|
|
return pickle.load(pickled)
|
|
|
|
|
|
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
|
|
|
|
|
|
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')
|
|
|
|
|
|
class DummyAsyncCacheFileBackend(Simple):
|
|
"""
|
|
A cache file backend meant to simulate async generation.
|
|
|
|
"""
|
|
is_async = True
|
|
|
|
def generate(self, file, force=False):
|
|
pass
|