示例#1
0
def test_checker_warning_count():
    checker = Checker("path1", "path2", "path3")
    checker.warnings = dict(foo=["warn"] * 3,
                            bar=["warn"] * 5,
                            baz=["warn"] * 7)
    assert checker.warning_count == 15
    assert "warning_count" not in checker.__dict__
示例#2
0
def test_checker_warned():
    checker = Checker("path1", "path2", "path3")
    checker.warnings = dict(foo=["check"] * 3,
                            bar=["check"] * 5,
                            baz=["check"] * 7)
    assert (checker.warned == dict(foo=3, bar=5, baz=7))
    assert "warned" not in checker.__dict__
示例#3
0
def test_checker_on_check_run(patches, errors, warnings, exiting):
    checker = Checker("path1", "path2", "path3")
    patched = patches(
        ("Checker.exiting", dict(new_callable=PropertyMock)),
        ("Checker.log", dict(new_callable=PropertyMock)),
        prefix="tools.base.checker")

    check = "CHECK1"
    checker.errors = errors
    checker.warnings = warnings
    checker._active_check = check

    with patched as (m_exit, m_log):
        m_exit.return_value = exiting
        assert not checker.on_check_run(check)

    assert checker.active_check is None

    if exiting:
        assert not m_log.called
        return

    if check in errors:
        assert (
            list(m_log.return_value.error.call_args)
            == [('[CHECK1] Check failed',), {}])
        assert not m_log.return_value.warning.called
        assert not m_log.return_value.success.called
        return

    if check in warnings:
        assert (
            list(m_log.return_value.warning.call_args)
            == [('[CHECK1] Check has warnings',), {}])
        assert not m_log.return_value.error.called
        assert not m_log.return_value.info.called
        return

    assert (
        list(m_log.return_value.success.call_args)
        == [(f'[{check}] Check completed successfully',), {}])
    assert not m_log.return_value.warning.called
    assert not m_log.return_value.error.called
示例#4
0
def test_checker_warn(patches, log, warns):
    checker = Checker("path1", "path2", "path3")
    log_mock = patch("tools.base.checker.Checker.log",
                     new_callable=PropertyMock)
    checker.warnings = warns.copy()

    with log_mock as m_log:
        checker.warn("mycheck", ["warn1", "warn2", "warn3"], log)

    assert checker.warnings["mycheck"] == warns.get(
        "mycheck", []) + ["warn1", "warn2", "warn3"]
    for k, v in warns.items():
        if k != "mycheck":
            assert checker.warnings[k] == v
    if log:
        assert (list(m_log.return_value.warning.call_args) == [
            ('warn1\nwarn2\nwarn3', ), {}
        ])
    else:
        assert not m_log.return_value.warn.called