Add test for abstract model signals

This commit is contained in:
Matthew Tretter 2013-02-10 15:41:24 -05:00
parent df41459e65
commit de550b71df
2 changed files with 43 additions and 7 deletions

View file

@ -26,17 +26,31 @@ class ProcessedImageFieldModel(models.Model):
options={'quality': 90}, upload_to='p')
class CountingCacheFileStrategy(object):
def __init__(self):
self.before_access_count = 0
self.on_source_changed_count = 0
self.on_source_created_count = 0
def before_access(self, file):
self.before_access_count += 1
def on_source_changed(self, file):
self.on_source_changed_count += 1
def on_source_created(self, file):
self.on_source_created_count += 1
class AbstractImageModel(models.Model):
original_image = models.ImageField(upload_to='photos')
abstract_class_spec = ImageSpecField()
abstract_class_spec = ImageSpecField(source='original_image',
format='JPEG',
cachefile_strategy=CountingCacheFileStrategy())
class Meta:
abstract = True
class ConcreteImageModel1(AbstractImageModel):
first_spec = ImageSpecField()
class ConcreteImageModel2(AbstractImageModel):
second_spec = ImageSpecField()
class ConcreteImageModel(AbstractImageModel):
pass

View file

@ -0,0 +1,22 @@
from django.core.files import File
from imagekit.signals import source_created
from imagekit.specs.sourcegroups import ImageFieldSourceGroup
from nose.tools import eq_
from . models import AbstractImageModel, ConcreteImageModel
from .utils import get_image_file
def test_source_created_signal():
source_group = ImageFieldSourceGroup(AbstractImageModel, 'original_image')
count = [0]
def receiver(sender, *args, **kwargs):
if sender is source_group:
count[0] += 1
source_created.connect(receiver, dispatch_uid='test_source_created')
instance = ConcreteImageModel()
img = File(get_image_file())
instance.original_image.save('test_source_created_signal.jpg', img)
eq_(count[0], 1)