kopia lustrzana https://github.com/wagtail/wagtail
Remove Django 1.8 fallback code for transaction.on_commit
rodzic
60c26e5565
commit
98f600c514
|
|
@ -1,24 +1,14 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django import VERSION as DJANGO_VERSION
|
||||
from django.db import transaction
|
||||
from django.db.models.signals import post_delete
|
||||
|
||||
from wagtail.wagtaildocs.models import get_document_model
|
||||
|
||||
|
||||
TRANSACTION_ON_COMMIT_AVAILABLE = (1, 8) < DJANGO_VERSION[:2]
|
||||
if TRANSACTION_ON_COMMIT_AVAILABLE:
|
||||
def on_commit_handler(f):
|
||||
return transaction.on_commit(f)
|
||||
else:
|
||||
def on_commit_handler(f):
|
||||
return f()
|
||||
|
||||
|
||||
def post_delete_file_cleanup(instance, **kwargs):
|
||||
# Pass false so FileField doesn't save the model.
|
||||
on_commit_handler(lambda: instance.file.delete(False))
|
||||
transaction.on_commit(lambda: instance.file.delete(False))
|
||||
|
||||
|
||||
def register_signal_handlers():
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import unittest
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group, Permission
|
||||
from django.core.files.base import ContentFile
|
||||
|
|
@ -131,10 +129,6 @@ class TestFilesDeletedForDefaultModels(TransactionTestCase):
|
|||
numchild=0,
|
||||
)
|
||||
|
||||
def test_oncommit_available(self):
|
||||
self.assertEqual(hasattr(transaction, 'on_commit'), signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE)
|
||||
|
||||
@unittest.skipUnless(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'is required for this test')
|
||||
def test_document_file_deleted_oncommit(self):
|
||||
with transaction.atomic():
|
||||
document = get_document_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
|
|
@ -143,19 +137,6 @@ class TestFilesDeletedForDefaultModels(TransactionTestCase):
|
|||
self.assertTrue(document.file.storage.exists(document.file.name))
|
||||
self.assertFalse(document.file.storage.exists(document.file.name))
|
||||
|
||||
@unittest.skipIf(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'duplicate')
|
||||
def test_document_file_deleted(self):
|
||||
'''
|
||||
this test duplicates `test_image_file_deleted_oncommit` for
|
||||
django 1.8 support and can be removed once django 1.8 is no longer
|
||||
supported
|
||||
'''
|
||||
with transaction.atomic():
|
||||
document = get_document_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
self.assertTrue(document.file.storage.exists(document.file.name))
|
||||
document.delete()
|
||||
self.assertFalse(document.file.storage.exists(document.file.name))
|
||||
|
||||
|
||||
@override_settings(WAGTAILDOCS_DOCUMENT_MODEL='tests.CustomDocument')
|
||||
class TestFilesDeletedForCustomModels(TestFilesDeletedForDefaultModels):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django import VERSION as DJANGO_VERSION
|
||||
from django.conf import settings
|
||||
from django.db import transaction
|
||||
from django.db.models.signals import post_delete, pre_save
|
||||
|
|
@ -8,18 +7,9 @@ from django.db.models.signals import post_delete, pre_save
|
|||
from wagtail.wagtailimages import get_image_model
|
||||
|
||||
|
||||
TRANSACTION_ON_COMMIT_AVAILABLE = (1, 8) < DJANGO_VERSION[:2]
|
||||
if TRANSACTION_ON_COMMIT_AVAILABLE:
|
||||
def on_commit_handler(f):
|
||||
return transaction.on_commit(f)
|
||||
else:
|
||||
def on_commit_handler(f):
|
||||
return f()
|
||||
|
||||
|
||||
def post_delete_file_cleanup(instance, **kwargs):
|
||||
# Pass false so FileField doesn't save the model.
|
||||
on_commit_handler(lambda: instance.file.delete(False))
|
||||
transaction.on_commit(lambda: instance.file.delete(False))
|
||||
|
||||
|
||||
def pre_save_image_feature_detection(instance, **kwargs):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import unittest
|
||||
|
||||
from django.db import transaction
|
||||
from django.test import TransactionTestCase, override_settings
|
||||
|
||||
|
|
@ -36,10 +34,6 @@ class TestFilesDeletedForDefaultModels(TransactionTestCase):
|
|||
numchild=0,
|
||||
)
|
||||
|
||||
def test_oncommit_available(self):
|
||||
self.assertEqual(hasattr(transaction, 'on_commit'), signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE)
|
||||
|
||||
@unittest.skipUnless(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'is required for this test')
|
||||
def test_image_file_deleted_oncommit(self):
|
||||
with transaction.atomic():
|
||||
image = get_image_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
|
|
@ -48,20 +42,6 @@ class TestFilesDeletedForDefaultModels(TransactionTestCase):
|
|||
self.assertTrue(image.file.storage.exists(image.file.name))
|
||||
self.assertFalse(image.file.storage.exists(image.file.name))
|
||||
|
||||
@unittest.skipIf(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'duplicate')
|
||||
def test_image_file_deleted(self):
|
||||
'''
|
||||
this test duplicates `test_image_file_deleted_oncommit` for
|
||||
django 1.8 support and can be removed once django 1.8 is no longer
|
||||
supported
|
||||
'''
|
||||
with transaction.atomic():
|
||||
image = get_image_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
self.assertTrue(image.file.storage.exists(image.file.name))
|
||||
image.delete()
|
||||
self.assertFalse(image.file.storage.exists(image.file.name))
|
||||
|
||||
@unittest.skipUnless(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'is required for this test')
|
||||
def test_rendition_file_deleted_oncommit(self):
|
||||
with transaction.atomic():
|
||||
image = get_image_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
|
|
@ -71,20 +51,6 @@ class TestFilesDeletedForDefaultModels(TransactionTestCase):
|
|||
self.assertTrue(rendition.file.storage.exists(rendition.file.name))
|
||||
self.assertFalse(rendition.file.storage.exists(rendition.file.name))
|
||||
|
||||
@unittest.skipIf(signal_handlers.TRANSACTION_ON_COMMIT_AVAILABLE, 'duplicate')
|
||||
def test_rendition_file_deleted(self):
|
||||
'''
|
||||
this test duplicates `test_rendition_file_deleted_oncommit` for
|
||||
django 1.8 support and can be removed once django 1.8 is no longer
|
||||
supported
|
||||
'''
|
||||
with transaction.atomic():
|
||||
image = get_image_model().objects.create(title="Test Image", file=get_test_image_file())
|
||||
rendition = image.get_rendition('original')
|
||||
self.assertTrue(rendition.file.storage.exists(rendition.file.name))
|
||||
rendition.delete()
|
||||
self.assertFalse(rendition.file.storage.exists(rendition.file.name))
|
||||
|
||||
|
||||
@override_settings(WAGTAILIMAGES_IMAGE_MODEL='tests.CustomImage')
|
||||
class TestFilesDeletedForCustomModels(TestFilesDeletedForDefaultModels):
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue