mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-04-14 08:31:00 +00:00
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.test import TestCase
|
|
|
|
from tests.models import SaveSignalHandlingTestModel
|
|
from tests.signals import pre_save_test, post_save_test
|
|
from django.db.models.signals import pre_save, post_save
|
|
|
|
|
|
class SaveSignalHandlingModelTests(TestCase):
|
|
|
|
def test_pre_save(self):
|
|
pre_save.connect(pre_save_test, sender=SaveSignalHandlingTestModel)
|
|
|
|
obj = SaveSignalHandlingTestModel.objects.create(name='Test')
|
|
delattr(obj, 'pre_save_runned')
|
|
obj.name = 'Test A'
|
|
obj.save()
|
|
self.assertEqual(obj.name, 'Test A')
|
|
self.assertTrue(hasattr(obj, 'pre_save_runned'))
|
|
|
|
obj = SaveSignalHandlingTestModel.objects.create(name='Test')
|
|
delattr(obj, 'pre_save_runned')
|
|
obj.name = 'Test B'
|
|
obj.save(signals_to_disable=['pre_save'])
|
|
self.assertEqual(obj.name, 'Test B')
|
|
self.assertFalse(hasattr(obj, 'pre_save_runned'))
|
|
|
|
def test_post_save(self):
|
|
post_save.connect(post_save_test, sender=SaveSignalHandlingTestModel)
|
|
|
|
obj = SaveSignalHandlingTestModel.objects.create(name='Test')
|
|
delattr(obj, 'post_save_runned')
|
|
obj.name = 'Test A'
|
|
obj.save()
|
|
self.assertEqual(obj.name, 'Test A')
|
|
self.assertTrue(hasattr(obj, 'post_save_runned'))
|
|
|
|
obj = SaveSignalHandlingTestModel.objects.create(name='Test')
|
|
delattr(obj, 'post_save_runned')
|
|
obj.name = 'Test B'
|
|
obj.save(signals_to_disable=['post_save'])
|
|
self.assertEqual(obj.name, 'Test B')
|
|
self.assertFalse(hasattr(obj, 'post_save_runned'))
|