mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-02 20:59:06 +08:00
Two problems occurred with the moksha/twisted handling of SIGINT: * While KeyboardInterrupt caused the moksha loop to exit, it just left the test in a confused state, instead of triggering standard pytest behavior and aborting the entire test run. * The handler was left-over for remaining tests that prevent Control-C from working at all. Fix that by using mock.patch to override moksha's signal handler with our own signal handler that stores the KeyboardInterrupt in the current EventTrap, and restores the default signal handler after the loop ends. Note that since the KeyboardInterrupt is always handled in the main thread, we don't get a useful backtrace from the child thread.