diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modeltests/delete/tests.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/modeltests/delete/tests.py b/tests/modeltests/delete/tests.py index 20b815c33d..0a3ddcfc2e 100644 --- a/tests/modeltests/delete/tests.py +++ b/tests/modeltests/delete/tests.py @@ -229,6 +229,27 @@ class DeletionTests(TestCase): models.signals.post_delete.disconnect(log_post_delete) models.signals.post_delete.disconnect(log_pre_delete) + def test_relational_post_delete_signals_happen_before_parent_object(self): + deletions = [] + + def log_post_delete(instance, **kwargs): + self.assertTrue(R.objects.filter(pk=instance.r_id)) + self.assertEquals(type(instance), S) + deletions.append(instance.id) + + r = R.objects.create(pk=1) + S.objects.create(pk=1, r=r) + + models.signals.post_delete.connect(log_post_delete, sender=S) + + try: + r.delete() + finally: + models.signals.post_delete.disconnect(log_post_delete) + + self.assertEquals(len(deletions), 1) + self.assertEquals(deletions[0], 1) + @skipUnlessDBFeature("can_defer_constraint_checks") def test_can_defer_constraint_checks(self): u = User.objects.create( |
