From 118f6e42064bd328c9ebf5834ae64341878ea4ec Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Wed, 18 Jul 2012 17:21:47 -0400 Subject: [PATCH] Create failing test to illustrate #97 --- tests/core/tests.py | 20 ++++++++++---------- tests/core/testutils.py | 10 +++++++++- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/tests/core/tests.py b/tests/core/tests.py index eb42ba8..b4884c8 100644 --- a/tests/core/tests.py +++ b/tests/core/tests.py @@ -1,15 +1,13 @@ from __future__ import with_statement import os -import pickle from django.test import TestCase from imagekit import utils -from imagekit.lib import StringIO from .models import (Photo, AbstractImageModel, ConcreteImageModel1, ConcreteImageModel2) -from .testutils import create_photo +from .testutils import create_photo, pickleback class IKTest(TestCase): @@ -66,15 +64,17 @@ class IKUtilsTest(TestCase): class PickleTest(TestCase): - def test_source_file(self): - ph = create_photo('pickletest.jpg') - pickled_model = StringIO() - pickle.dump(ph, pickled_model) - pickled_model.seek(0) - unpickled_model = pickle.load(pickled_model) + def test_model(self): + ph = pickleback(create_photo('pickletest.jpg')) # This isn't supposed to error. - unpickled_model.thumbnail.source_file + ph.thumbnail.source_file + + def test_field(self): + thumbnail = pickleback(create_photo('pickletest2.jpg').thumbnail) + + # This isn't supposed to error. + thumbnail.source_file class InheritanceTest(TestCase): diff --git a/tests/core/testutils.py b/tests/core/testutils.py index 27e0f52..4acc13c 100644 --- a/tests/core/testutils.py +++ b/tests/core/testutils.py @@ -3,8 +3,9 @@ import tempfile from django.core.files.base import ContentFile -from imagekit.lib import Image +from imagekit.lib import Image, StringIO from .models import Photo +import pickle def generate_lenna(): @@ -36,3 +37,10 @@ def create_instance(model_class, image_name): 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)