def test_scan_process(): # TODO(jon): add more tests for successful cases; this really just looks for errors. assert TRH.scan_process( make_runner_state(cpid=None, pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(PSUTIL_PATH) as p_mock: class WrappedNoSuchProcess(psutil.NoSuchProcess): # psutil.NoSuchProcess exception requires an argument, but mock doesn't support that. def __init__(self): pass p_mock.side_effect = WrappedNoSuchProcess assert TRH.scan_process( make_runner_state(cpid=None), PROCESS_NAME) == (None, None, set()) assert TRH.scan_process( make_runner_state(pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(PSUTIL_PATH) as p_mock: p_mock.side_effect = psutil.Error assert TRH.scan_process( make_runner_state(cpid=None), PROCESS_NAME) == (None, None, set()) assert TRH.scan_process( make_runner_state(pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(TRH_PATH) as trh_mock: trh_mock.this_is_really_our_pid.returns = False assert TRH.scan_process( make_runner_state(), PROCESS_NAME) == (None, None, set()) with mock.patch(TRH_PATH) as trh_mock: trh_mock.this_is_really_our_pid.sideffect = psutil.Error assert TRH.scan_process( make_runner_state(), PROCESS_NAME) == (None, None, set())
def test_scan_process(): # TODO(jon): add more tests for successful cases; this really just looks for errors. assert TRH.scan_process(make_runner_state(cpid=None, pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(PSUTIL_PATH) as p_mock: class WrappedNoSuchProcess(psutil.NoSuchProcess): # psutil.NoSuchProcess exception requires an argument, but mock doesn't support that. def __init__(self): pass p_mock.side_effect = WrappedNoSuchProcess assert TRH.scan_process(make_runner_state(cpid=None), PROCESS_NAME) == (None, None, set()) assert TRH.scan_process(make_runner_state(pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(PSUTIL_PATH) as p_mock: p_mock.side_effect = psutil.Error assert TRH.scan_process(make_runner_state(cpid=None), PROCESS_NAME) == (None, None, set()) assert TRH.scan_process(make_runner_state(pid=None), PROCESS_NAME) == (None, None, set()) with mock.patch(TRH_PATH) as trh_mock: trh_mock.this_is_really_our_pid.returns = False assert TRH.scan_process(make_runner_state(), PROCESS_NAME) == (None, None, set()) with mock.patch(TRH_PATH) as trh_mock: trh_mock.this_is_really_our_pid.sideffect = psutil.Error assert TRH.scan_process(make_runner_state(), PROCESS_NAME) == (None, None, set())
def test_this_is_really_our_pid(): process = mock.Mock(spec=psutil.Process, username=USER1, pid=PID, create_time=CREATE_TIME) assert TRH.this_is_really_our_pid(process, process.username, process.create_time) assert TRH.this_is_really_our_pid( process, process.username, process.create_time + TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) - 1) assert not TRH.this_is_really_our_pid(process, 'user2', process.create_time) assert not TRH.this_is_really_our_pid( process, process.username, process.create_time + TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) + 1) assert not TRH.this_is_really_our_pid( process, process.username, process.create_time - (TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) + 1))
def kill(args, options): """Kill task(s) Usage: thermos kill task_id1 [task_id2 ...] Regular expressions may be used to match multiple tasks. """ if not args: print('Must specify tasks!', file=sys.stderr) return matched_tasks = tasks_from_re(args, options.root, state='active') if not matched_tasks: print('No active tasks matched.') return for task_id in matched_tasks: print('Killing %s...' % task_id, end='') TaskRunnerHelper.kill(task_id, options.root, force=True) print('done.')
def test_this_is_really_our_pid(): process = mock.Mock(spec=psutil.Process, username=USER1, pid=PID, create_time=CREATE_TIME) assert TRH.this_is_really_our_pid( process, process.username, process.create_time) assert TRH.this_is_really_our_pid( process, process.username, process.create_time + TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) - 1) assert not TRH.this_is_really_our_pid( process, 'user2', process.create_time) assert not TRH.this_is_really_our_pid( process, process.username, process.create_time + TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) + 1) assert not TRH.this_is_really_our_pid( process, process.username, process.create_time - (TRH.MAX_START_TIME_DRIFT.as_(Time.SECONDS) + 1))