mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-05-17 09:11:05 +00:00
Add test for abstract model signals
This commit is contained in:
parent
df41459e65
commit
de550b71df
2 changed files with 43 additions and 7 deletions
|
|
@ -26,17 +26,31 @@ class ProcessedImageFieldModel(models.Model):
|
||||||
options={'quality': 90}, upload_to='p')
|
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):
|
class AbstractImageModel(models.Model):
|
||||||
original_image = models.ImageField(upload_to='photos')
|
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:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
|
|
||||||
class ConcreteImageModel1(AbstractImageModel):
|
class ConcreteImageModel(AbstractImageModel):
|
||||||
first_spec = ImageSpecField()
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ConcreteImageModel2(AbstractImageModel):
|
|
||||||
second_spec = ImageSpecField()
|
|
||||||
|
|
|
||||||
22
tests/test_abstract_models.py
Normal file
22
tests/test_abstract_models.py
Normal 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)
|
||||||
Loading…
Reference in a new issue