def test_removeProcessFromGroup_raises_bad_name_when_process_does_not_exist(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) interface = self.makeOne(supervisord) self.assertRPCError(SupervisorFaults.BAD_NAME, interface.removeProcessFromGroup, 'group_name', 'nonexistant_process_name')
def test_removeProcessFromGroup_deletes_the_process(self): pconfig = DummyPConfig(None, "foo", "/bin/foo") process = DummyProcess(pconfig, ProcessStates.STOPPED) gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {"process_name": process} supervisord = DummySupervisor(process_groups={"group_name": pgroup}) interface = self.makeOne(supervisord) result = interface.removeProcessFromGroup("group_name", "process_name") self.assertTrue(result) self.assertTrue(pgroup.processes.get("process_name") is None) self.assertEqual("removeProcessFromGroup", interface.update_text)
def test_removeProcessFromGroup_raises_bad_name_when_process_does_not_exist( self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) interface = self.makeOne(supervisord) self.assertRPCError(SupervisorFaults.BAD_NAME, interface.removeProcessFromGroup, 'group_name', 'nonexistant_process_name')
def test_removeProcessFromGroup_transitions_process_group(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig, ProcessStates.EXITED) gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = { 'process_name': process } supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) interface = self.makeOne(supervisord) result = interface.removeProcessFromGroup('group_name', 'process_name') self.assertTrue(result) self.assertTrue(pgroup.transitioned)
def test_removeProcessFromGroup_transitions_process_group(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig, ProcessStates.EXITED) gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {'process_name': process} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) interface = self.makeOne(supervisord) result = interface.removeProcessFromGroup('group_name', 'process_name') self.assertTrue(result) self.assertTrue(pgroup.transitioned)
def test_removeProcessFromGroup_deletes_the_process(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig, ProcessStates.STOPPED) gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = { 'process_name': process } supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) interface = self.makeOne(supervisord) result = interface.removeProcessFromGroup('group_name', 'process_name') self.assertTrue(result) self.assertTrue(pgroup.processes.get('process_name') is None) self.assertEqual('removeProcessFromGroup', interface.update_text)
def test_removeProcessFromGroup_raises_still_running_when_process_has_pid(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig) process.pid = 42 gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = { 'process_with_pid': process } supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) interface = self.makeOne(supervisord) self.assertRPCError(SupervisorFaults.STILL_RUNNING, interface.removeProcessFromGroup, 'group_name', 'process_with_pid')
def test_removeProcessFromGroup_deletes_the_process(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig, ProcessStates.STOPPED) gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {'process_name': process} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) interface = self.makeOne(supervisord) result = interface.removeProcessFromGroup('group_name', 'process_name') self.assertTrue(result) self.assertTrue(pgroup.processes.get('process_name') is None) self.assertEqual('removeProcessFromGroup', interface.update_text)
def test_removeProcessFromGroup_raises_still_running_when_process_has_pid( self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') process = DummyProcess(pconfig) process.pid = 42 gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {'process_with_pid': process} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) interface = self.makeOne(supervisord) self.assertRPCError(SupervisorFaults.STILL_RUNNING, interface.removeProcessFromGroup, 'group_name', 'process_with_pid')
def test_addProgramToGroup_adds_new_process_config_to_group(self): pconfig = DummyPConfig(None, "foo", "/bin/foo") gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={"group_name": pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {"command": "/usr/bin/find /"} self.assertTrue( interface.addProgramToGroup("new_process", poptions, "group_name")) self.assertEqual("addProgramToGroup", interface.update_text) config = pgroup.config.process_configs[1] self.assertEqual("new_process", config.name) self.assertTrue(isinstance(config, supervisor.options.ProcessConfig))
def test_addProgramToGroup_adds_all_processes_resulting_from_program_options(self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {'command': '/usr/bin/find /', 'process_name': 'find_%(process_num)d', 'numprocs': 3} self.assertTrue(interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) self.assertEqual(3, len(pgroup.config.process_configs)) self.assertEqual(3, len(pgroup.processes))
def test_addProgramToGroup_adds_new_process_config_to_group(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {'command': '/usr/bin/find /'} self.assertTrue(interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) config = pgroup.config.process_configs[1] self.assertEqual('new_process', config.name) self.assertTrue(isinstance(config, supervisor.options.ProcessConfig))
def test_addProgramToGroup_adds_all_processes_resulting_from_program_options( self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={"group_name": pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = { "command": "/usr/bin/find /", "process_name": "find_%(process_num)d", "numprocs": 3, } self.assertTrue( interface.addProgramToGroup("new_process", poptions, "group_name")) self.assertEqual("addProgramToGroup", interface.update_text) self.assertEqual(3, len(pgroup.config.process_configs)) self.assertEqual(3, len(pgroup.processes))
def test_addProgramToGroup_adds_new_process_config_to_group(self): pconfig = DummyPConfig(None, 'foo', '/bin/foo') gconfig = DummyPGroupConfig(None, pconfigs=[pconfig]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {'command': '/usr/bin/find /'} self.assertTrue( interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) config = pgroup.config.process_configs[1] self.assertEqual('new_process', config.name) self.assertTrue(isinstance(config, supervisor.options.ProcessConfig))
def test_addProgramToGroup_uses_process_name_from_options(self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups = {'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {'process_name': 'renamed', 'command': '/usr/bin/find /'} self.assertTrue(interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) config = pgroup.config.process_configs[0] self.assertEqual('renamed', config.name) self.assertTrue(pgroup.processes.get('new_process') is None) self.assertTrue(isinstance(pgroup.processes.get('renamed'), supervisor.process.Subprocess))
def test_addProgramToGroup_uses_process_name_from_options(self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={"group_name": pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {"process_name": "renamed", "command": "/usr/bin/find /"} self.assertTrue( interface.addProgramToGroup("new_process", poptions, "group_name")) self.assertEqual("addProgramToGroup", interface.update_text) config = pgroup.config.process_configs[0] self.assertEqual("renamed", config.name) self.assertTrue(pgroup.processes.get("new_process") is None) self.assertTrue( isinstance(pgroup.processes.get("renamed"), supervisor.process.Subprocess))
def test_addProgramToGroup_uses_process_name_from_options(self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = {'process_name': 'renamed', 'command': '/usr/bin/find /'} self.assertTrue( interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) config = pgroup.config.process_configs[0] self.assertEqual('renamed', config.name) self.assertTrue(pgroup.processes.get('new_process') is None) self.assertTrue( isinstance(pgroup.processes.get('renamed'), supervisor.process.Subprocess))
def test_addProgramToGroup_adds_all_processes_resulting_from_program_options( self): gconfig = DummyPGroupConfig(None, pconfigs=[]) pgroup = DummyProcessGroup(gconfig) pgroup.processes = {} supervisord = DummySupervisor(process_groups={'group_name': pgroup}) supervisord.options = supervisor.options.ServerOptions() interface = self.makeOne(supervisord) poptions = { 'command': '/usr/bin/find /', 'process_name': 'find_%(process_num)d', 'numprocs': 3 } self.assertTrue( interface.addProgramToGroup('group_name', 'new_process', poptions)) self.assertEqual('addProgramToGroup', interface.update_text) self.assertEqual(3, len(pgroup.config.process_configs)) self.assertEqual(3, len(pgroup.processes))