Kaydet (Commit) b366bcc9 authored tarafından Adrian Holovaty's avatar Adrian Holovaty

Fixed #10753 -- Fixed regression in dispatcher after [10398]. Thanks for the…

Fixed #10753 -- Fixed regression in dispatcher after [10398]. Thanks for the patch and tests, minmax

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10497 bcc190cf-cafb-0310-a4f2-bffc1f526a37
üst 9e9a2b88
...@@ -124,6 +124,7 @@ class Signal(object): ...@@ -124,6 +124,7 @@ class Signal(object):
(r_key, _) = self.receivers[index] (r_key, _) = self.receivers[index]
if r_key == lookup_key: if r_key == lookup_key:
del self.receivers[index] del self.receivers[index]
break
def send(self, sender, **named): def send(self, sender, **named):
"""Send signal from sender to all connected receivers. """Send signal from sender to all connected receivers.
......
...@@ -103,6 +103,19 @@ class DispatcherTests(unittest.TestCase): ...@@ -103,6 +103,19 @@ class DispatcherTests(unittest.TestCase):
a_signal.disconnect(fails) a_signal.disconnect(fails)
self._testIsClean(a_signal) self._testIsClean(a_signal)
def testDisconnection(self):
receiver_1 = Callable()
receiver_2 = Callable()
receiver_3 = Callable()
a_signal.connect(receiver_1)
a_signal.connect(receiver_2)
a_signal.connect(receiver_3)
a_signal.disconnect(receiver_1)
del receiver_2
garbage_collect()
a_signal.disconnect(receiver_3)
self._testIsClean(a_signal)
def getSuite(): def getSuite():
return unittest.makeSuite(DispatcherTests,'test') return unittest.makeSuite(DispatcherTests,'test')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment