Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
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())
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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.')
Ejemplo n.º 5
0
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.')
Ejemplo n.º 6
0
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))