Show More
@@ -2829,7 +2829,14 b' class InteractiveShell(SingletonConfigurable):' | |||||
2829 | return interactivity |
|
2829 | return interactivity | |
2830 |
|
2830 | |||
2831 | if interactivity == 'async': |
|
2831 | if interactivity == 'async': | |
2832 | return self.loop_runner(coro) |
|
2832 | try: | |
|
2833 | return self.loop_runner(coro) | |||
|
2834 | except Exception as e: | |||
|
2835 | info = ExecutionInfo(raw_cell, store_history, silent, shell_futures) | |||
|
2836 | result = ExecutionResult(info) | |||
|
2837 | result.error_in_exec = e | |||
|
2838 | self.showtraceback(running_compiled_code=True) | |||
|
2839 | return result | |||
2833 | return _pseudo_sync_runner(coro) |
|
2840 | return _pseudo_sync_runner(coro) | |
2834 |
|
2841 | |||
2835 | @asyncio.coroutine |
|
2842 | @asyncio.coroutine |
@@ -13,6 +13,7 b' from IPython.testing.decorators import skip_without' | |||||
13 |
|
13 | |||
14 | ip = get_ipython() |
|
14 | ip = get_ipython() | |
15 | iprc = lambda x: ip.run_cell(dedent(x)).raise_error() |
|
15 | iprc = lambda x: ip.run_cell(dedent(x)).raise_error() | |
|
16 | iprc_nr = lambda x: ip.run_cell(dedent(x)) | |||
16 |
|
17 | |||
17 | if sys.version_info > (3, 5): |
|
18 | if sys.version_info > (3, 5): | |
18 | from IPython.core.async_helpers import _should_be_async |
|
19 | from IPython.core.async_helpers import _should_be_async | |
@@ -251,5 +252,26 b' if sys.version_info > (3, 5):' | |||||
251 | def test_autoawait_trio(self): |
|
252 | def test_autoawait_trio(self): | |
252 | iprc("%autoawait trio") |
|
253 | iprc("%autoawait trio") | |
253 |
|
254 | |||
|
255 | @skip_without('trio') | |||
|
256 | def test_autoawait_trio_wrong_sleep(self): | |||
|
257 | iprc("%autoawait trio") | |||
|
258 | res = iprc_nr(""" | |||
|
259 | import asyncio | |||
|
260 | await asyncio.sleep(0) | |||
|
261 | """) | |||
|
262 | with nt.assert_raises(TypeError): | |||
|
263 | res.raise_error() | |||
|
264 | ||||
|
265 | @skip_without('trio') | |||
|
266 | def test_autoawait_asyncio_wrong_sleep(self): | |||
|
267 | iprc("%autoawait asyncio") | |||
|
268 | res = iprc_nr(""" | |||
|
269 | import trio | |||
|
270 | await trio.sleep(0) | |||
|
271 | """) | |||
|
272 | with nt.assert_raises(RuntimeError): | |||
|
273 | res.raise_error() | |||
|
274 | ||||
|
275 | ||||
254 | def tearDown(self): |
|
276 | def tearDown(self): | |
255 | ip.loop_runner = "asyncio" |
|
277 | ip.loop_runner = "asyncio" |
General Comments 0
You need to be logged in to leave comments.
Login now