Просмотр исходного кода

Add tests for signal methods with signal as string

Mike Naberezny 10 лет назад
Родитель
Сommit
5cccaf73d0
1 измененных файлов с 75 добавлено и 5 удалено
  1. 75 5
      supervisor/tests/test_rpcinterfaces.py

+ 75 - 5
supervisor/tests/test_rpcinterfaces.py

@@ -856,20 +856,39 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
              ]
             )
 
-    def test_signalProcess(self):
+    def test_signalProcess_with_signal_number(self):
         options = DummyOptions()
         pconfig = DummyPConfig(options, 'foo', '/bin/foo')
         from supervisor.process import ProcessStates
         supervisord = PopulatedDummySupervisor(options, 'foo', pconfig)
         supervisord.set_procattr('foo', 'state', ProcessStates.RUNNING)
-        interface = self._makeOne(supervisord)
 
+        interface = self._makeOne(supervisord)
         result = interface.signalProcess('foo', 10)
 
         self.assertEqual(interface.update_text, 'signalProcess')
         self.assertEqual(result, True)
         p = supervisord.process_groups[supervisord.group_name].processes['foo']
-        self.assertEqual(p.sent_signal, 10 )
+        self.assertEqual(p.sent_signal, 10)
+
+    def test_signalProcess_with_signal_name(self):
+        options = DummyOptions()
+        pconfig = DummyPConfig(options, 'foo', '/bin/foo')
+        from supervisor.process import ProcessStates
+        supervisord = PopulatedDummySupervisor(options, 'foo', pconfig)
+        supervisord.set_procattr('foo', 'state', ProcessStates.RUNNING)
+
+        from supervisor.datatypes import signal_number
+        signame = 'quit'
+        signum = signal_number(signame)
+
+        interface = self._makeOne(supervisord)
+        result = interface.signalProcess('foo', signame)
+
+        self.assertEqual(interface.update_text, 'signalProcess')
+        self.assertEqual(result, True)
+        p = supervisord.process_groups[supervisord.group_name].processes['foo']
+        self.assertEqual(p.sent_signal, signum)
 
     def test_signalProcess_badsignal(self):
         options = DummyOptions()
@@ -948,7 +967,7 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
         self.assertEqual(process2.sent_signal, 10)
 
 
-    def test_signalProcessGroup(self):
+    def test_signalProcessGroup_with_signal_number(self):
         options = DummyOptions()
         pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
         pconfig2 = DummyPConfig(options, 'process2', '/bin/foo2')
@@ -980,6 +999,32 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
         process2 = supervisord.process_groups['foo'].processes['process2']
         self.assertEqual(process2.sent_signal, 10)
 
+    def test_signalProcessGroup_with_signal_name(self):
+        options = DummyOptions()
+        pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
+        from supervisor.process import ProcessStates
+        supervisord = PopulatedDummySupervisor(options, 'foo', pconfig1)
+        supervisord.set_procattr('process1', 'state', ProcessStates.RUNNING)
+
+        from supervisor.datatypes import signal_number
+        signame = 'term'
+        signum = signal_number(signame)
+
+        interface = self._makeOne(supervisord)
+        result = interface.signalProcessGroup('foo', signame)
+
+        self.assertEqual(interface.update_text, 'signalProcessGroup')
+        from supervisor.xmlrpc import Faults
+        self.assertEqual(result, [
+            {'status': Faults.SUCCESS,
+             'group': 'foo',
+             'name': 'process1',
+             'description': 'OK'},
+            ] )
+
+        process1 = supervisord.process_groups['foo'].processes['process1']
+        self.assertEqual(process1.sent_signal, signum)
+
     def test_signalProcessGroup_nosuchgroup(self):
         from supervisor import xmlrpc
         options = DummyOptions()
@@ -995,7 +1040,7 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
             interface.signalProcessGroup, 'bar', 10
             )
 
-    def test_signalAllProcesses(self):
+    def test_signalAllProcesses_with_signal_number(self):
         options = DummyOptions()
         pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
         pconfig2 = DummyPConfig(options, 'process2', '/bin/foo2')
@@ -1028,6 +1073,31 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
         process2 = supervisord.process_groups['foo'].processes['process2']
         self.assertEqual(process2.sent_signal, 10)
 
+    def test_signalAllProcesses_with_signal_name(self):
+        options = DummyOptions()
+        pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
+        from supervisor.process import ProcessStates
+        supervisord = PopulatedDummySupervisor(options, 'foo', pconfig1)
+        supervisord.set_procattr('process1', 'state', ProcessStates.RUNNING)
+
+        from supervisor.datatypes import signal_number
+        signame = 'hup'
+        signum = signal_number(signame)
+
+        interface = self._makeOne(supervisord)
+        result = interface.signalAllProcesses(signame)
+        self.assertEqual(interface.update_text, 'signalAllProcesses')
+
+        from supervisor.xmlrpc import Faults
+        self.assertEqual(result, [
+            {'status': Faults.SUCCESS,
+             'group': 'foo',
+             'name': 'process1',
+             'description': 'OK'},
+            ] )
+        process1 = supervisord.process_groups['foo'].processes['process1']
+        self.assertEqual(process1.sent_signal, signum)
+
     def test_getAllConfigInfo(self):
         options = DummyOptions()
         supervisord = DummySupervisor(options, 'foo')