@@ -1423,6 +1423,68 @@ def test_processes_from_section_host_node_name_expansion(self):
14231423 expected = "/bin/foo --host=" + platform .node ()
14241424 self .assertEqual (pconfigs [0 ].command , expected )
14251425
1426+ def test_processes_from_section_prsetdeathsig_error (self ):
1427+ instance = self ._makeOne ()
1428+ text = lstrip ("""\
1429+ [program:foo]
1430+ command = /bin/foo
1431+ prsetpdeathsig = SIGKILL
1432+ """ )
1433+ from supervisor .options import UnhosedConfigParser
1434+ config = UnhosedConfigParser ()
1435+ config .read_string (text )
1436+
1437+ platform_mock = Mock ()
1438+ platform_mock .return_value = "darwin"
1439+ @patch ('sys.platform' , platform_mock )
1440+ def parse_config (instance , config ):
1441+ instance .processes_from_section (config , 'program:foo' , 'bar' )
1442+
1443+ try :
1444+ parse_config (instance , config )
1445+ except ValueError as exc :
1446+ self .assertTrue (exc .args [0 ].startswith (
1447+ 'Cannot set prsetpdeathsig on non-linux os in section' ))
1448+
1449+ def test_processes_from_section_prsetdeathsig_linux (self ):
1450+ instance = self ._makeOne ()
1451+ text = lstrip ("""\
1452+ [program:foo]
1453+ command = /bin/foo
1454+ prsetpdeathsig = SIGKILL
1455+ """ )
1456+ from supervisor .options import UnhosedConfigParser
1457+ config = UnhosedConfigParser ()
1458+ config .read_string (text )
1459+
1460+ platform_mock = Mock ()
1461+ platform_mock .return_value = "linux"
1462+ @patch ('sys.platform' , platform_mock )
1463+ def parse_config (instance , config ):
1464+ return instance .processes_from_section (config , 'program:foo' , 'bar' )
1465+
1466+ pconfig = parse_config (instance , config )
1467+ self .assertEqual (pconfig [0 ].prsetpdeathsig , signal .SIGKILL )
1468+
1469+ def test_processes_from_section_prsetdeathsig_linux_default (self ):
1470+ instance = self ._makeOne ()
1471+ text = lstrip ("""\
1472+ [program:foo]
1473+ command = /bin/foo
1474+ """ )
1475+ from supervisor .options import UnhosedConfigParser
1476+ config = UnhosedConfigParser ()
1477+ config .read_string (text )
1478+
1479+ platform_mock = Mock ()
1480+ platform_mock .return_value = "linux"
1481+ @patch ('sys.platform' , platform_mock )
1482+ def parse_config (instance , config ):
1483+ return instance .processes_from_section (config , 'program:foo' , 'bar' )
1484+
1485+ pconfig = parse_config (instance , config )
1486+ self .assertEqual (pconfig [0 ].prsetpdeathsig , None )
1487+
14261488 def test_processes_from_section_process_num_expansion (self ):
14271489 instance = self ._makeOne ()
14281490 text = lstrip ("""\
@@ -2677,7 +2739,7 @@ def _makeOne(self, *arg, **kw):
26772739 'stderr_events_enabled' , 'stderr_syslog' ,
26782740 'stopsignal' , 'stopwaitsecs' , 'stopasgroup' ,
26792741 'killasgroup' , 'exitcodes' , 'redirect_stderr' ,
2680- 'environment' ):
2742+ 'environment' , 'prsetpdeathsig' ):
26812743 defaults [name ] = name
26822744 for name in ('stdout_logfile_backups' , 'stdout_logfile_maxbytes' ,
26832745 'stderr_logfile_backups' , 'stderr_logfile_maxbytes' ):
@@ -2759,7 +2821,7 @@ def _makeOne(self, *arg, **kw):
27592821 'stderr_events_enabled' , 'stderr_syslog' ,
27602822 'stopsignal' , 'stopwaitsecs' , 'stopasgroup' ,
27612823 'killasgroup' , 'exitcodes' , 'redirect_stderr' ,
2762- 'environment' ):
2824+ 'environment' , 'prsetpdeathsig' ):
27632825 defaults [name ] = name
27642826 for name in ('stdout_logfile_backups' , 'stdout_logfile_maxbytes' ,
27652827 'stderr_logfile_backups' , 'stderr_logfile_maxbytes' ):
@@ -2807,7 +2869,7 @@ def _makeOne(self, *arg, **kw):
28072869 'stderr_events_enabled' , 'stderr_syslog' ,
28082870 'stopsignal' , 'stopwaitsecs' , 'stopasgroup' ,
28092871 'killasgroup' , 'exitcodes' , 'redirect_stderr' ,
2810- 'environment' ):
2872+ 'environment' , 'prsetpdeathsig' ):
28112873 defaults [name ] = name
28122874 for name in ('stdout_logfile_backups' , 'stdout_logfile_maxbytes' ,
28132875 'stderr_logfile_backups' , 'stderr_logfile_maxbytes' ):
0 commit comments