summaryrefslogtreecommitdiffstats
path: root/Lib/test/support.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-04-21 19:52:52 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2010-04-21 19:52:52 (GMT)
commitda6902cb7ba83b4a5fd82fd183f248b7984d1e36 (patch)
treec5bfaa8dd55d7baa76c18d07cb1212bf8706c51a /Lib/test/support.py
parent0c21bdf3c31eeb4dbcb12ad82b396eafa74bef62 (diff)
downloadcpython-da6902cb7ba83b4a5fd82fd183f248b7984d1e36.zip
cpython-da6902cb7ba83b4a5fd82fd183f248b7984d1e36.tar.gz
cpython-da6902cb7ba83b4a5fd82fd183f248b7984d1e36.tar.bz2
Merged revisions 80317 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r80317 | antoine.pitrou | 2010-04-21 21:46:23 +0200 (mer., 21 avril 2010) | 15 lines Merged revisions 80314-80315 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r80314 | antoine.pitrou | 2010-04-21 21:28:03 +0200 (mer., 21 avril 2010) | 5 lines Issue #8484: Load all ciphers and digest algorithms when initializing the _ssl extension, such that verification of some SSL certificates doesn't fail because of an "unknown algorithm". ........ r80315 | antoine.pitrou | 2010-04-21 21:36:23 +0200 (mer., 21 avril 2010) | 3 lines Forgot to add the sample certificate (followup to r80314) ........ ................
Diffstat (limited to 'Lib/test/support.py')
-rw-r--r--Lib/test/support.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/test/support.py b/Lib/test/support.py
index 18fb391..08828a8 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -607,6 +607,17 @@ ioerror_peer_reset = TransientResource(IOError, errno=errno.ECONNRESET)
@contextlib.contextmanager
+def transient_internet():
+ """Return a context manager that raises ResourceDenied when various issues
+ with the Internet connection manifest themselves as exceptions."""
+ time_out = TransientResource(IOError, errno=errno.ETIMEDOUT)
+ socket_peer_reset = TransientResource(socket.error, errno=errno.ECONNRESET)
+ ioerror_peer_reset = TransientResource(IOError, errno=errno.ECONNRESET)
+ with time_out, socket_peer_reset, ioerror_peer_reset:
+ yield
+
+
+@contextlib.contextmanager
def captured_output(stream_name):
"""Run the 'with' statement body using a StringIO object in place of a
specific attribute on the sys module.