summaryrefslogtreecommitdiff
path: root/tests/signals
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@sixmedia.com>2013-11-19 01:59:39 +0700
committerSimon Charette <charette.s@gmail.com>2013-11-18 14:38:28 -0500
commit3f19b63f8b7d70fde838d6949eab28e2c8d8ca99 (patch)
tree3031a032ea8cbca27b324b067461354d6042c586 /tests/signals
parent97ac22ebfca0a5b0759f495cc5d7bed3f9da6615 (diff)
downloaddjango-3f19b63f8b7d70fde838d6949eab28e2c8d8ca99.tar.gz
Fixed some Signal.disconnect calls from 058e434.
This would go unnoticed by the test suite because receivers are removed automatically when they are garbage collected. Changed all Signal.connect calls to hold strong references to ensure we clean up after ourselves.
Diffstat (limited to 'tests/signals')
-rw-r--r--tests/signals/tests.py46
1 files changed, 23 insertions, 23 deletions
diff --git a/tests/signals/tests.py b/tests/signals/tests.py
index bb23cdbee4..4be8d9b65d 100644
--- a/tests/signals/tests.py
+++ b/tests/signals/tests.py
@@ -43,8 +43,8 @@ class SignalTests(TestCase):
(instance, kwargs.get("created"), kwargs.get("raw", False))
)
- signals.pre_save.connect(pre_save_handler)
- signals.post_save.connect(post_save_handler)
+ signals.pre_save.connect(pre_save_handler, weak=False)
+ signals.post_save.connect(post_save_handler, weak=False)
try:
p1 = Person.objects.create(first_name="John", last_name="Smith")
@@ -85,8 +85,8 @@ class SignalTests(TestCase):
(p2, True, False),
])
finally:
- signals.post_delete.disconnect(pre_save_handler)
- signals.pre_delete.disconnect(post_save_handler)
+ signals.pre_save.disconnect(pre_save_handler)
+ signals.post_save.disconnect(post_save_handler)
def test_delete_signals(self):
data = []
@@ -107,8 +107,8 @@ class SignalTests(TestCase):
)
post_delete_handler = PostDeleteHandler(data)
- signals.pre_delete.connect(pre_delete_handler)
- signals.post_delete.connect(post_delete_handler)
+ signals.pre_delete.connect(pre_delete_handler, weak=False)
+ signals.post_delete.connect(post_delete_handler, weak=False)
try:
p1 = Person.objects.create(first_name="John", last_name="Smith")
p1.delete()
@@ -137,17 +137,17 @@ class SignalTests(TestCase):
six.text_type
)
finally:
- signals.post_delete.disconnect(pre_delete_handler)
- signals.pre_delete.disconnect(post_delete_handler)
+ signals.pre_delete.disconnect(pre_delete_handler)
+ signals.post_delete.disconnect(post_delete_handler)
def test_decorators(self):
data = []
- @receiver(signals.pre_save)
+ @receiver(signals.pre_save, weak=False)
def decorated_handler(signal, sender, instance, **kwargs):
data.append(instance)
- @receiver(signals.pre_save, sender=Car)
+ @receiver(signals.pre_save, sender=Car, weak=False)
def decorated_handler_with_sender_arg(signal, sender, instance, **kwargs):
data.append(instance)
@@ -155,8 +155,8 @@ class SignalTests(TestCase):
c1 = Car.objects.create(make="Volkswagon", model="Passat")
self.assertEqual(data, [c1, c1])
finally:
- signals.post_delete.disconnect(decorated_handler)
- signals.pre_delete.disconnect(decorated_handler_with_sender_arg, sender=Car)
+ signals.pre_save.disconnect(decorated_handler)
+ signals.pre_save.disconnect(decorated_handler_with_sender_arg, sender=Car)
def test_save_and_delete_signals_with_m2m(self):
data = []
@@ -177,17 +177,17 @@ class SignalTests(TestCase):
data.append('Is raw')
def pre_delete_handler(signal, sender, instance, **kwargs):
- data.append('pre_save signal, %s' % instance)
+ data.append('pre_delete signal, %s' % instance)
data.append('instance.id is not None: %s' % (instance.id is not None))
def post_delete_handler(signal, sender, instance, **kwargs):
data.append('post_delete signal, %s' % instance)
data.append('instance.id is not None: %s' % (instance.id is not None))
- signals.pre_save.connect(pre_save_handler)
- signals.post_save.connect(post_save_handler)
- signals.pre_delete.connect(pre_delete_handler)
- signals.post_delete.connect(post_delete_handler)
+ signals.pre_save.connect(pre_save_handler, weak=False)
+ signals.post_save.connect(post_save_handler, weak=False)
+ signals.pre_delete.connect(pre_delete_handler, weak=False)
+ signals.post_delete.connect(post_delete_handler, weak=False)
try:
a1 = Author.objects.create(name='Neal Stephenson')
self.assertEqual(data, [
@@ -211,10 +211,10 @@ class SignalTests(TestCase):
b1.authors = []
self.assertEqual(data, [])
finally:
- signals.post_delete.disconnect(pre_save_handler)
- signals.pre_delete.disconnect(post_save_handler)
- signals.post_save.disconnect(pre_delete_handler)
- signals.pre_save.disconnect(post_delete_handler)
+ signals.pre_save.disconnect(pre_save_handler)
+ signals.post_save.disconnect(post_save_handler)
+ signals.pre_delete.disconnect(pre_delete_handler)
+ signals.post_delete.disconnect(post_delete_handler)
def test_disconnect_in_dispatch(self):
"""
@@ -232,8 +232,8 @@ class SignalTests(TestCase):
signal.disconnect(receiver=self, sender=sender)
a, b = Handler(1), Handler(2)
- signals.post_save.connect(sender=Person, receiver=a)
- signals.post_save.connect(sender=Person, receiver=b)
+ signals.post_save.connect(a, sender=Person, weak=False)
+ signals.post_save.connect(b, sender=Person, weak=False)
Person.objects.create(first_name='John', last_name='Smith')
self.assertTrue(a._run)