kopia lustrzana https://github.com/wagtail/wagtail
Implement ``get_image_model`` for image signals
rodzic
e83d563e30
commit
361df2035e
|
@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals
|
|||
from django.conf import settings
|
||||
from django.db.models.signals import post_delete, pre_save
|
||||
|
||||
from wagtail.wagtailimages.models import Image, Rendition
|
||||
from wagtail.wagtailimages import get_image_model
|
||||
|
||||
|
||||
def post_delete_file_cleanup(instance, **kwargs):
|
||||
|
@ -20,6 +20,9 @@ def pre_save_image_feature_detection(instance, **kwargs):
|
|||
|
||||
|
||||
def register_signal_handlers():
|
||||
Image = get_image_model()
|
||||
Rendition = Image.get_rendition_model()
|
||||
|
||||
pre_save.connect(pre_save_image_feature_detection, sender=Image)
|
||||
post_delete.connect(post_delete_file_cleanup, sender=Image)
|
||||
post_delete.connect(post_delete_file_cleanup, sender=Rendition)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import os
|
||||
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from wagtail.wagtailimages import get_image_model, signal_handlers
|
||||
from wagtail.wagtailimages.tests.utils import get_test_image_file
|
||||
|
||||
|
||||
class TestSignalHandlers(TestCase):
|
||||
|
||||
def test_image_signal_handlers(self):
|
||||
image = get_image_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
image_path = image.file.path
|
||||
image.delete()
|
||||
|
||||
self.assertFalse(os.path.exists(image_path))
|
||||
|
||||
@override_settings(WAGTAILIMAGES_IMAGE_MODEL='tests.CustomImage')
|
||||
def test_custom_image_signal_handlers(self):
|
||||
#: Sadly signal receivers only get connected when starting django.
|
||||
#: We will re-attach them here to mimic the django startup behavior
|
||||
#: and get the signals connected to our custom model..
|
||||
signal_handlers.register_signal_handlers()
|
||||
|
||||
image = get_image_model().objects.create(title="Test CustomImage", file=get_test_image_file())
|
||||
image_path = image.file.path
|
||||
image.delete()
|
||||
|
||||
self.assertFalse(os.path.exists(image_path))
|
Ładowanie…
Reference in New Issue