Пример #1
0
def test_multiple_compare(
    assert_errors,
    parse_ast_tree,
    default_options,
):
    """Ensuring than multiple useless compare returns a single violation."""
    tree = parse_ast_tree('assert some == some == some')

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [UselessCompareViolation])
Пример #2
0
def test_correct_len_call(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Testing that compares work well."""
    tree = parse_ast_tree(code)

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
Пример #3
0
def test_useless_len_call(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Testing that compares with len raise a violation."""
    tree = parse_ast_tree(code)

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [UselessLenCompareViolation])
def test_literal_special_without_errors(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Testing that special cases do work and do not raise warnings."""
    tree = parse_ast_tree(code.format('first_name', 'second_name'))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [], ReversedComplexCompareViolation)
Пример #5
0
def test_heterogenous_compare(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Testing that compares with diffrent operators raise."""
    tree = parse_ast_tree(code)

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [HeterogenousCompareViolation])
def test_reversed_complex_compare(
    assert_errors,
    parse_ast_tree,
    code,
    default_options,
):
    """Testing that reversed compares raise a violation."""
    tree = parse_ast_tree(code)

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [ReversedComplexCompareViolation])
def test_literal_special1(
    assert_errors,
    parse_ast_tree,
    code,
    comparators,
    default_options,
):
    """Testing that special cases do work and raise warnings."""
    tree = parse_ast_tree(code.format(*comparators))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [ConstantCompareViolation])
def test_literal(
    assert_errors,
    parse_ast_tree,
    simple_conditions,
    comparators,
    default_options,
):
    """Testing that violations are when using literal compares."""
    tree = parse_ast_tree(simple_conditions.format(*comparators))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [ConstantCompareViolation])
def test_non_literal(
    assert_errors,
    parse_ast_tree,
    simple_conditions,
    comparators,
    default_options,
):
    """Testing that compares work well."""
    tree = parse_ast_tree(simple_conditions.format(*comparators))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
def test_compare_with_correct_type(
    assert_errors,
    parse_ast_tree,
    code,
    comparator,
    default_options,
):
    """Compares work correctly for ``in`` with correct types."""
    tree = parse_ast_tree(code.format(comparator))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
def test_compare_with_wrong_type(
    assert_errors,
    parse_ast_tree,
    code,
    comparator,
    default_options,
):
    """Compares raise a violation for ``in`` with wrong types."""
    tree = parse_ast_tree(code.format(comparator))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [WrongInCompareTypeViolation])
Пример #12
0
def test_useless_with_in(
    assert_errors,
    parse_ast_tree,
    in_conditions,
    comparators,
    default_options,
):
    """Testing that violations are when comparing identical variable."""
    tree = parse_ast_tree(
        create_variables.format(in_conditions.format(*comparators)), )

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [UselessCompareViolation])
Пример #13
0
def test_not_useless(
    assert_errors,
    parse_ast_tree,
    simple_conditions,
    comparators,
    default_options,
):
    """Testing that compares work well."""
    tree = parse_ast_tree(
        create_variables.format(simple_conditions.format(*comparators)), )

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])
Пример #14
0
def test_compare_with_mixed_in(
    assert_errors,
    parse_ast_tree,
    default_options,
):
    """Compares raise for multiple ``in`` and ``not in`` cases."""
    tree = parse_ast_tree('x in a not in b')

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [
        MultipleInCompareViolation,
        HeterogenousCompareViolation,
    ])
Пример #15
0
def test_compare_with_multiple_in(
    assert_errors,
    parse_ast_tree,
    code,
    comparators,
    default_options,
    in_not_in,
):
    """Compares raise for multiple ``in`` cases."""
    tree = parse_ast_tree(in_not_in(code.format(*comparators)))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [MultipleInCompareViolation])
Пример #16
0
def test_compare_with_in(
    assert_errors,
    parse_ast_tree,
    code,
    comparators,
    default_options,
    in_not_in,
):
    """Compares work well for single ``in``."""
    tree = parse_ast_tree(in_not_in(code.format(*comparators)))

    visitor = CompareSanityVisitor(default_options, tree=tree)
    visitor.run()

    assert_errors(visitor, [])