Separate source group tests; signal counting util

This commit is contained in:
Matthew Tretter 2013-05-24 23:46:02 -04:00
parent 397a79ba56
commit 4ff55724dc
2 changed files with 30 additions and 21 deletions

View file

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

View file

@ -0,0 +1,29 @@
from django.core.files import File
from imagekit.signals import source_saved
from imagekit.specs.sourcegroups import ImageFieldSourceGroup
from nose.tools import eq_
from . models import AbstractImageModel, ConcreteImageModel
from .utils import get_image_file
def make_counting_receiver(source_group):
def receiver(sender, *args, **kwargs):
if sender is source_group:
receiver.count += 1
receiver.count = 0
return receiver
def test_abstract_model_signals():
"""
Source groups created for abstract models must cause signals to be
dispatched on their concrete subclasses.
"""
source_group = ImageFieldSourceGroup(AbstractImageModel, 'original_image')
receiver = make_counting_receiver(source_group)
source_saved.connect(receiver)
instance = ConcreteImageModel()
img = File(get_image_file())
instance.original_image.save('test_source_saved_signal.jpg', img)
eq_(receiver.count, 1)