|
20 | 20 | from supervisor.tests.base import DummyProcessGroup
|
21 | 21 | from supervisor.tests.base import DummyFCGIProcessGroup
|
22 | 22 |
|
23 |
| -from supervisor.process import Subprocess |
| 23 | +from supervisor.process import Subprocess, ProcessStates |
24 | 24 | from supervisor.options import BadCommand
|
25 | 25 |
|
26 | 26 | class SubprocessTests(unittest.TestCase):
|
@@ -1799,6 +1799,18 @@ def test_before_spawn_gets_socket_ref(self):
|
1799 | 1799 | instance.before_spawn()
|
1800 | 1800 | self.assertFalse(instance.fcgi_sock is None)
|
1801 | 1801 |
|
| 1802 | + def test_before_spawn_failure_sets_fatal_state(self): |
| 1803 | + options = DummyOptions() |
| 1804 | + config = DummyPConfig(options, 'good', '/good/filename', uid=1) |
| 1805 | + instance = self._makeOne(config) |
| 1806 | + instance.group = Mock() |
| 1807 | + socket_manager = Mock() |
| 1808 | + instance.group.attach_mock(socket_manager, 'socket_manager') |
| 1809 | + socket_manager.attach_mock(Mock(side_effect=Exception), 'get_socket') |
| 1810 | + self.assertEqual(instance.state, ProcessStates.STOPPED) |
| 1811 | + instance.spawn() |
| 1812 | + self.assertEqual(instance.state, ProcessStates.FATAL) |
| 1813 | + |
1802 | 1814 | def test_after_finish_removes_socket_ref(self):
|
1803 | 1815 | options = DummyOptions()
|
1804 | 1816 | config = DummyPConfig(options, 'good', '/good/filename', uid=1)
|
|
0 commit comments