|
@@ -2,7 +2,7 @@ import gc
|
|
|
import sys
|
|
|
import time
|
|
|
|
|
|
-from django.dispatch import Signal
|
|
|
+from django.dispatch import Signal, receiver
|
|
|
from django.utils import unittest
|
|
|
|
|
|
|
|
@@ -33,6 +33,8 @@ class Callable(object):
|
|
|
return val
|
|
|
|
|
|
a_signal = Signal(providing_args=["val"])
|
|
|
+b_signal = Signal(providing_args=["val"])
|
|
|
+c_signal = Signal(providing_args=["val"])
|
|
|
|
|
|
class DispatcherTests(unittest.TestCase):
|
|
|
"""Test suite for dispatcher (barely started)"""
|
|
@@ -123,3 +125,29 @@ class DispatcherTests(unittest.TestCase):
|
|
|
garbage_collect()
|
|
|
a_signal.disconnect(receiver_3)
|
|
|
self._testIsClean(a_signal)
|
|
|
+
|
|
|
+
|
|
|
+class ReceiverTestCase(unittest.TestCase):
|
|
|
+ """
|
|
|
+ Test suite for receiver.
|
|
|
+
|
|
|
+ """
|
|
|
+ def testReceiverSingleSignal(self):
|
|
|
+ @receiver(a_signal)
|
|
|
+ def f(val, **kwargs):
|
|
|
+ self.state = val
|
|
|
+ self.state = False
|
|
|
+ a_signal.send(sender=self, val=True)
|
|
|
+ self.assertTrue(self.state)
|
|
|
+
|
|
|
+ def testReceiverSignalList(self):
|
|
|
+ @receiver([a_signal, b_signal, c_signal])
|
|
|
+ def f(val, **kwargs):
|
|
|
+ self.state.append(val)
|
|
|
+ self.state = []
|
|
|
+ a_signal.send(sender=self, val='a')
|
|
|
+ c_signal.send(sender=self, val='c')
|
|
|
+ b_signal.send(sender=self, val='b')
|
|
|
+ self.assertIn('a', self.state)
|
|
|
+ self.assertIn('b', self.state)
|
|
|
+ self.assertIn('c', self.state)
|