summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason kirtland <jek@discorporate.us>2010-07-20 19:00:25 +0100
committerjason kirtland <jek@discorporate.us>2010-07-20 19:00:25 +0100
commit6b57dccd11923a094101e178f6033b0a46c52c10 (patch)
tree501182d310b6f51526a180a60dc340f701886fb1
parentc8853255642f9620d2208e5300fdc682067ba1a6 (diff)
downloadblinker-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.py31
-rw-r--r--tests/test_context.py19
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)