def add_signal_handlers(loop: AbstractEventLoop): exit_func = functools.partial(asyncio.ensure_future, agent.stop()) try: loop.add_signal_handler(signal.SIGINT, exit_func) loop.add_signal_handler(signal.SIGTERM, exit_func) except NotImplementedError: pass # Ignore if not implemented. Means this program is running in windows.
def test_override_signal(event_loop: AbstractEventLoop) -> None: # hack signal handler as terminate will be ignored event_loop.add_signal_handler(SIGINT, lambda sig, frame:..., SIGINT, None) lazy_fire_terminate_signal(0.1) # asynchronous dummy heavy process will be terminated 0.1 sec later event_loop.run_until_complete(dummy_inf_loop(0.3))
def test_override_signal_but_timeout_works( event_loop: AbstractEventLoop) -> None: # check timeout works or not event_loop.add_signal_handler(SIGINT, lambda sig, frame:..., SIGINT, None) lazy_fire_terminate_signal(0.1) event_loop.run_until_complete(dummy_inf_loop(0.3))