aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_coroutines.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-06-03 03:51:43 +0200
committerGitHub <noreply@github.com>2019-06-03 03:51:43 +0200
commit0025350294959594e7f57aef4fc9579c77a0ed1c (patch)
tree8fb501ae17c33b278f4a9a2aa38a96b8b5f35164 /Lib/test/test_coroutines.py
parent13136e83a637a9f1cfbada7e93097005296659b4 (diff)
downloadcpython-0025350294959594e7f57aef4fc9579c77a0ed1c.tar.gz
cpython-0025350294959594e7f57aef4fc9579c77a0ed1c.zip
bpo-37069: tests use catch_unraisable_exception() (GH-13762)
Modify test_coroutines, test_cprofile, test_generators, test_raise, test_ssl and test_yield_from to use support.catch_unraisable_exception() rather than support.captured_stderr(). test_thread: remove test_save_exception_state_on_error() which is now updated. test_unraisable_exception() checks that sys.unraisablehook() is called to handle _thread.start_new_thread() exception. test_cprofile now rely on unittest for test discovery: replace support.run_unittest() with unittest.main().
Diffstat (limited to 'Lib/test/test_coroutines.py')
-rw-r--r--Lib/test/test_coroutines.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index b406b1c3ebf..208b5c2ccf5 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -2032,11 +2032,17 @@ class CoroutineTest(unittest.TestCase):
def test_fatal_coro_warning(self):
# Issue 27811
async def func(): pass
- with warnings.catch_warnings(), support.captured_stderr() as stderr:
+ with warnings.catch_warnings(), \
+ support.catch_unraisable_exception() as cm:
warnings.filterwarnings("error")
- func()
+ coro = func()
+ # only store repr() to avoid keeping the coroutine alive
+ coro_repr = repr(coro)
+ coro = None
support.gc_collect()
- self.assertIn("was never awaited", stderr.getvalue())
+
+ self.assertIn("was never awaited", str(cm.unraisable.exc_value))
+ self.assertEqual(repr(cm.unraisable.object), coro_repr)
def test_for_assign_raising_stop_async_iteration(self):
class BadTarget: