diff options
author | jason kirtland <jek@discorporate.us> | 2010-07-20 19:00:25 +0100 |
---|---|---|
committer | jason kirtland <jek@discorporate.us> | 2010-07-20 19:00:25 +0100 |
commit | 6b57dccd11923a094101e178f6033b0a46c52c10 (patch) | |
tree | 501182d310b6f51526a180a60dc340f701886fb1 | |
parent | c8853255642f9620d2208e5300fdc682067ba1a6 (diff) | |
download | blinker-6b57dccd11923a094101e178f6033b0a46c52c10.tar.gz |
Renamed 'temporarily_connected_to' to simply 'connected_to'.
Old spelling will be deprecated in 1.2 and removed in the release after.
-rw-r--r-- | blinker/base.py | 31 | ||||
-rw-r--r-- | tests/test_context.py | 19 |
2 files changed, 43 insertions, 7 deletions
diff --git a/blinker/base.py b/blinker/base.py index c0a5e3f..bc2bcda 100644 --- a/blinker/base.py +++ b/blinker/base.py @@ -8,6 +8,7 @@ each manages its own receivers and message emission. The :func:`signal` function provides singleton behavior for named signals. """ +from warnings import warn from weakref import WeakValueDictionary from blinker._utilities import ( @@ -110,30 +111,31 @@ class Signal(object): return receiver @contextmanager - def temporarily_connected_to(self, receiver, sender=ANY): - """Execute a block with the signal connected *receiver*. + def connected_to(self, receiver, sender=ANY): + """Execute a block with the signal temporarily connected to *receiver*. :param receiver: a receiver callable :param sender: optional, a sender to filter on - This is a context manager for use in the ``with`` statement. It can + This is a context manager for use in the ``with`` statement. It can be useful in unit tests. *receiver* is connected to the signal for the duration of the ``with`` block, and will be disconnected automatically when exiting the block: .. testsetup:: + from __future__ import with_statement from blinker import Signal on_ready = Signal() receiver = lambda sender: None .. testcode:: - with on_ready.temporarily_connected_to(receiver): + with on_ready.connected_to(receiver): # do stuff on_ready.send(123) - .. versionadded:: 0.9 + .. versionadded:: 1.1 """ self.connect(receiver, sender=sender, weak=False) @@ -145,6 +147,25 @@ class Signal(object): else: self.disconnect(receiver) + def temporarily_connected_to(self, receiver, sender=ANY): + """An alias for :meth:`connected_to`. + + :param receiver: a receiver callable + :param sender: optional, a sender to filter on + + .. versionadded:: 0.9 + + .. versionchanged:: 1.1 + + In version 1.1, this method was renamed to :meth:`connected_to`. + The original name will be deprecated in 1.2 and removed in 1.3. + + """ + warn("temporarily_connected_to is deprecated; " + "use connected_to instead.", + PendingDeprecationWarning) + return self.connected_to(receiver, sender) + def send(self, *sender, **kwargs): """Emit this signal on behalf of *sender*, passing on \*\*kwargs. diff --git a/tests/test_context.py b/tests/test_context.py index b5de372..6a9afcd 100644 --- a/tests/test_context.py +++ b/tests/test_context.py @@ -10,6 +10,21 @@ def test_temp_connection(): receiver = lambda sender: canary.append(sender) sig.send(1) + with sig.connected_to(receiver): + sig.send(2) + sig.send(3) + + assert canary == [2] + assert not sig.receivers + + +def test_temp_connection_alias(): + sig = Signal() + + canary = [] + receiver = lambda sender: canary.append(sender) + + sig.send(1) with sig.temporarily_connected_to(receiver): sig.send(2) sig.send(3) @@ -24,7 +39,7 @@ def test_temp_connection_for_sender(): canary = [] receiver = lambda sender: canary.append(sender) - with sig.temporarily_connected_to(receiver, sender=2): + with sig.connected_to(receiver, sender=2): sig.send(1) sig.send(2) @@ -43,7 +58,7 @@ def test_temp_connection_failure(): try: sig.send(1) - with sig.temporarily_connected_to(receiver): + with sig.connected_to(receiver): sig.send(2) raise Failure sig.send(3) |