Fix double ctrl-c kill (#2634)

This commit is contained in:
Adam Hopkins
2022-12-18 14:40:38 +02:00
committed by GitHub
parent f7040ccec8
commit 4744a89c33
2 changed files with 22 additions and 6 deletions

View File

@@ -33,9 +33,7 @@ def test_terminate(os_mock: Mock):
context = Mock()
context.Process.return_value = process
manager = WorkerManager(1, fake_serve, {}, context, (Mock(), Mock()), {})
assert manager.terminated is False
manager.terminate()
assert manager.terminated is True
os_mock.kill.assert_called_once_with(1234, SIGINT)
@@ -63,6 +61,24 @@ def test_kill(os_mock: Mock):
os_mock.kill.assert_called_once_with(1234, SIGKILL)
@patch("sanic.worker.process.os")
@patch("sanic.worker.manager.os")
def test_shutdown_signal_send_kill(
manager_os_mock: Mock, process_os_mock: Mock
):
process = Mock()
process.pid = 1234
context = Mock()
context.Process.return_value = process
manager = WorkerManager(1, fake_serve, {}, context, (Mock(), Mock()), {})
assert manager._shutting_down is False
manager.shutdown_signal(SIGINT, None)
assert manager._shutting_down is True
process_os_mock.kill.assert_called_once_with(1234, SIGINT)
manager.shutdown_signal(SIGINT, None)
manager_os_mock.kill.assert_called_once_with(1234, SIGKILL)
def test_restart_all():
p1 = Mock()
p2 = Mock()