Пример #1
0
def test_bazeladapter_query(query_returns):
    run = DummyForkingRunner()
    adapter = runner.BazelAdapter(run)
    fork_mock = patch("tools.base.runner.ForkingAdapter.subproc_run")

    with fork_mock as m_fork:
        m_fork.return_value.returncode = query_returns
        if query_returns:
            with pytest.raises(runner.BazelRunError) as result:
                adapter.query("BAZEL QUERY")
        else:
            result = adapter.query("BAZEL QUERY")

    assert (list(m_fork.call_args) == [(['bazel', 'query', "'BAZEL QUERY'"], ),
                                       {}])

    if query_returns:
        assert result.errisinstance(runner.BazelRunError)
        assert (result.value.args == (
            f"Bazel query failed: {m_fork.return_value}", ))
        assert not m_fork.return_value.stdout.decode.called
    else:
        assert (result == m_fork.return_value.stdout.decode.return_value.split.
                return_value)
        assert (list(m_fork.return_value.stdout.decode.call_args) == [
            ('utf-8', ), {}
        ])
        assert (list(
            m_fork.return_value.stdout.decode.return_value.split.call_args) ==
                [('\n', ), {}])
Пример #2
0
def test_bazeladapter_run(patches, run_returns, cwd, raises, args, capture_output):
    run = DummyForkingRunner()
    adapter = runner.BazelAdapter(run)
    patched = patches(
        "ForkingAdapter.subproc_run",
        ("ForkingRunner.path", dict(new_callable=PropertyMock)),
        prefix="tools.base.runner")

    adapter_args = ("BAZEL RUN",) + args
    kwargs = {}
    if raises is not None:
        kwargs["raises"] = raises
    if cwd is not None:
        kwargs["cwd"] = cwd
    if capture_output is not None:
        kwargs["capture_output"] = capture_output

    with patched as (m_fork, m_path):
        m_fork.return_value.returncode = run_returns
        if run_returns and (raises is not False):
            with pytest.raises(runner.BazelRunError) as result:
                adapter.run(*adapter_args, **kwargs)
        else:
            result = adapter.run(*adapter_args, **kwargs)

    call_args = (("--",) + args) if args else args
    bazel_args = ("bazel", "run", "BAZEL RUN") + call_args
    bazel_kwargs = {}
    bazel_kwargs["capture_output"] = (
        True
        if capture_output is True
        else False)
    bazel_kwargs["cwd"] = (
        cwd
        if cwd
        else m_path.return_value)
    assert (
        list(m_fork.call_args)
        == [(bazel_args,), bazel_kwargs])
    if run_returns and (raises is not False):
        assert result.errisinstance(runner.BazelRunError)
        assert (
            result.value.args
            == (f"Bazel run failed: {m_fork.return_value}",))
    else:
        assert result == m_fork.return_value
Пример #3
0
def test_bazeladapter_constructor():
    run = DummyRunner()
    adapter = runner.BazelAdapter(run)
    assert adapter.context == run