Show More
@@ -25,7 +25,7 b' class _AsyncIORunner:' | |||
|
25 | 25 | """ |
|
26 | 26 | import asyncio |
|
27 | 27 | |
|
28 | return asyncio.get_event_loop().run_until_complete(coro) | |
|
28 | return asyncio.get_event_loop_policy().get_event_loop().run_until_complete(coro) | |
|
29 | 29 | |
|
30 | 30 | def __str__(self): |
|
31 | 31 | return 'asyncio' |
@@ -81,7 +81,7 b' def safe_watcher():' | |||
|
81 | 81 | yield |
|
82 | 82 | return |
|
83 | 83 | |
|
84 |
loop = |
|
|
84 | loop = policy.get_event_loop() | |
|
85 | 85 | try: |
|
86 | 86 | watcher = asyncio.SafeChildWatcher() |
|
87 | 87 | watcher.attach_loop(loop) |
@@ -238,7 +238,7 b' class ScriptMagics(Magics):' | |||
|
238 | 238 | |
|
239 | 239 | if sys.platform.startswith("win"): |
|
240 | 240 | asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy()) |
|
241 | loop = asyncio.get_event_loop() | |
|
241 | loop = asyncio.get_event_loop_policy().get_event_loop() | |
|
242 | 242 | argv = arg_split(line, posix=not sys.platform.startswith("win")) |
|
243 | 243 | args, cmd = self.shebang.parser.parse_known_args(argv) |
|
244 | 244 | try: |
@@ -1039,7 +1039,7 b' def test_custom_exc_count():' | |||
|
1039 | 1039 | |
|
1040 | 1040 | |
|
1041 | 1041 | def test_run_cell_async(): |
|
1042 | loop = asyncio.get_event_loop() | |
|
1042 | loop = asyncio.get_event_loop_policy().get_event_loop() | |
|
1043 | 1043 | ip.run_cell("import asyncio") |
|
1044 | 1044 | coro = ip.run_cell_async("await asyncio.sleep(0.01)\n5") |
|
1045 | 1045 | assert asyncio.iscoroutine(coro) |
@@ -967,17 +967,22 b' def test_script_config():' | |||
|
967 | 967 | assert "whoda" in sm.magics["cell"] |
|
968 | 968 | |
|
969 | 969 | |
|
970 | @pytest.fixture | |
|
971 | def event_loop(): | |
|
972 | yield asyncio.get_event_loop_policy().get_event_loop() | |
|
973 | ||
|
974 | ||
|
970 | 975 | @dec.skip_iptest_but_not_pytest |
|
971 | 976 | @dec.skip_win32 |
|
972 | 977 | @pytest.mark.skipif( |
|
973 | 978 | sys.platform == "win32", reason="This test does not run under Windows" |
|
974 | 979 | ) |
|
975 | def test_script_out(): | |
|
976 |
assert |
|
|
980 | def test_script_out(event_loop): | |
|
981 | assert event_loop.is_running() is False | |
|
977 | 982 | |
|
978 | 983 | ip = get_ipython() |
|
979 | 984 | ip.run_cell_magic("script", "--out output sh", "echo 'hi'") |
|
980 |
assert |
|
|
985 | assert event_loop.is_running() is False | |
|
981 | 986 | assert ip.user_ns["output"] == "hi\n" |
|
982 | 987 | |
|
983 | 988 | |
@@ -986,11 +991,11 b' def test_script_out():' | |||
|
986 | 991 | @pytest.mark.skipif( |
|
987 | 992 | sys.platform == "win32", reason="This test does not run under Windows" |
|
988 | 993 | ) |
|
989 | def test_script_err(): | |
|
994 | def test_script_err(event_loop): | |
|
990 | 995 | ip = get_ipython() |
|
991 |
assert |
|
|
996 | assert event_loop.is_running() is False | |
|
992 | 997 | ip.run_cell_magic("script", "--err error sh", "echo 'hello' >&2") |
|
993 |
assert |
|
|
998 | assert event_loop.is_running() is False | |
|
994 | 999 | assert ip.user_ns["error"] == "hello\n" |
|
995 | 1000 | |
|
996 | 1001 | |
@@ -1014,12 +1019,12 b' def test_script_out_err():' | |||
|
1014 | 1019 | @pytest.mark.skipif( |
|
1015 | 1020 | sys.platform == "win32", reason="This test does not run under Windows" |
|
1016 | 1021 | ) |
|
1017 | async def test_script_bg_out(): | |
|
1022 | async def test_script_bg_out(event_loop): | |
|
1018 | 1023 | ip = get_ipython() |
|
1019 | 1024 | ip.run_cell_magic("script", "--bg --out output sh", "echo 'hi'") |
|
1020 | 1025 | assert (await ip.user_ns["output"].read()) == b"hi\n" |
|
1021 | 1026 | ip.user_ns["output"].close() |
|
1022 |
|
|
|
1027 | event_loop.stop() | |
|
1023 | 1028 | |
|
1024 | 1029 | |
|
1025 | 1030 | @dec.skip_iptest_but_not_pytest |
@@ -648,7 +648,7 b' class TerminalInteractiveShell(InteractiveShell):' | |||
|
648 | 648 | # When we integrate the asyncio event loop, run the UI in the |
|
649 | 649 | # same event loop as the rest of the code. don't use an actual |
|
650 | 650 | # input hook. (Asyncio is not made for nesting event loops.) |
|
651 | self.pt_loop = asyncio.get_event_loop() | |
|
651 | self.pt_loop = asyncio.get_event_loop_policy().get_event_loop() | |
|
652 | 652 | |
|
653 | 653 | elif self._inputhook: |
|
654 | 654 | # If an inputhook was set, create a new asyncio event loop with |
@@ -35,7 +35,7 b" PTK3 = ptk_version.startswith('3.')" | |||
|
35 | 35 | |
|
36 | 36 | # Keep reference to the original asyncio loop, because getting the event loop |
|
37 | 37 | # within the input hook would return the other loop. |
|
38 | loop = asyncio.get_event_loop() | |
|
38 | loop = asyncio.get_event_loop_policy().get_event_loop() | |
|
39 | 39 | |
|
40 | 40 | |
|
41 | 41 | def inputhook(context): |
General Comments 0
You need to be logged in to leave comments.
Login now