Skip to content

Commit 3285628

Browse files
author
cod1k
committed
TESTS: exception handling while spawning fcgi-program which address already bound to another process
1 parent cd1aaf5 commit 3285628

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

supervisor/tests/test_process.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from supervisor.tests.base import DummyProcessGroup
2121
from supervisor.tests.base import DummyFCGIProcessGroup
2222

23-
from supervisor.process import Subprocess
23+
from supervisor.process import Subprocess, ProcessStates
2424
from supervisor.options import BadCommand
2525

2626
class SubprocessTests(unittest.TestCase):
@@ -1799,6 +1799,18 @@ def test_before_spawn_gets_socket_ref(self):
17991799
instance.before_spawn()
18001800
self.assertFalse(instance.fcgi_sock is None)
18011801

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+
18021814
def test_after_finish_removes_socket_ref(self):
18031815
options = DummyOptions()
18041816
config = DummyPConfig(options, 'good', '/good/filename', uid=1)

0 commit comments

Comments
 (0)