Try to fix some of current failures....
Try to fix some of current failures.
See error found in CI below. Hopefully this fixes it.
There are manycomplexity, we need to make sure the loop has no task
after each tests, so we need to close and restore the subprocess
watcher.
We make it a context manager and provide a decorator.
======================================================================
ERROR: IPython.core.tests.test_magic.test_script_out
----------------------------------------------------------------------
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/nose/case.py", line 198, in runTest
self.test(*self.arg)
File "/home/runner/work/ipython/ipython/IPython/testing/decorators.py", line 223, in skipper_func
return f(*args, **kwargs)
File "/home/runner/work/ipython/ipython/IPython/core/tests/test_magic.py", line 953, in test_script_out
ip.run_cell_magic("script", "--out output sh", "echo 'hi'")
File "/home/runner/work/ipython/ipython/IPython/core/interactiveshell.py", line 2417, in run_cell_magic
result = fn(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/home/runner/work/ipython/ipython/IPython/core/magic.py", line 187, in <lambda>
call = lambda f, *a, **k: f(*a, **k)
File "/home/runner/work/ipython/ipython/IPython/core/magics/script.py", line 216, in shebang
stdin=asyncio.subprocess.PIPE,
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
return future.result()
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/asyncio/subprocess.py", line 217, in create_subprocess_exec
stderr=stderr, **kwds)
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/asyncio/base_events.py", line 1544, in subprocess_exec
bufsize, **kwargs)
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/asyncio/unix_events.py", line 193, in _make_subprocess_transport
self._child_watcher_callback, transp)
File "/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/asyncio/unix_events.py", line 941, in add_child_handler
"Cannot add child handler, "
RuntimeError: Cannot add child handler, the child watcher does not have a loop attached