Example #1
0
def pytest_assertrepr_compare(config, op, left, right):
    if config.getoption('-v') < 2:
        return

    op = display_op_for(op)

    width = int(config.getoption("--diff-width"))
    diff_type = config.getoption("--diff-type")

    lhs_repr = pformat_no_color(utf8_replace(left), width)
    rhs_repr = pformat_no_color(utf8_replace(right), width)

    if diff_type == "split":
        output = build_full_splitdiff_output(lhs_repr, rhs_repr, op)
    elif diff_type == "unified":
        output = build_full_unidiff_output(lhs_repr, rhs_repr, op)
    else:  # assume diff_type == "auto" so decide based on newlines
        if "\n" in lhs_repr and "\n" in rhs_repr:
            output = build_full_unidiff_output(lhs_repr, rhs_repr, op)
        else:
            output = build_full_splitdiff_output(lhs_repr, rhs_repr, op)

    if not config.getoption("--no-hints"):
        output += hints_for(op, left, right)

    return [utf8_replace(line) for line in output]
def find_extras(lhs, rhs, text_fn, item_marker):
    lhs_extras_lines = []
    num_extras = 0
    for item in lhs:
        if item not in rhs:
            num_extras += 1
            for i, line in enumerate(pformat_no_color(item, 80).splitlines()):
                gutter_content = item_marker if i == 0 else " "
                coloured_line = "{gutter_content}{spacing}{line}".format(
                    gutter_content=text_fn(gutter_content),
                    spacing=" ",
                    line=text_fn(line),
                )
                lhs_extras_lines.append(coloured_line)

    return num_extras, lhs_extras_lines
Example #3
0
def test_pformat_no_color(arg, result):
    assert pformat_no_color(arg, 60) == result