コード例 #1
0
def test_line_with_colons_in_message():
    """ Test parsing of line where the message field has ':' character(s) """

    # Entry has all possible fields and a message with ':'
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: ./../rulecheck/return-256.c:2:4: ERROR: example_rules.file_based_rule: Visited a file: return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "./../rulecheck/return-256.c"
    assert entry.get_line_num() == 2
    assert entry.get_col_num() == 4
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Visited a file: return-256.c"
    assert entry.is_valid()

    # Entry has fewer than the maximum number of fields and has a message with ':'
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: rulecheck: ERROR: example_rules.file_based_rule: Rule threw exception:KeyError"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "rulecheck"
    assert entry.get_line_num() == -1
    assert entry.get_col_num() == -1
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Rule threw exception:KeyError"
    assert entry.is_valid()
コード例 #2
0
def test_line_with_colons_in_filename():
    """ Test parsing of line where the filename field has ':' character """

    # Entry has all possible fields and a filename with ':'
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: C:/project/rulecheck/return-256.c:2:4: ERROR: example_rules.file_based_rule: Visited a file: return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "C:/project/rulecheck/return-256.c"
    assert entry.get_line_num() == 2
    assert entry.get_col_num() == 4
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Visited a file: return-256.c"
    assert entry.is_valid()

    # Entry has all possible fields except col number and has a filename with ':'
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: C:/project/rulecheck/return-256.c:2: ERROR: example_rules.file_based_rule: Visited a file: return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "C:/project/rulecheck/return-256.c"
    assert entry.get_line_num() == 2
    assert entry.get_col_num() == -1
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Visited a file: return-256.c"
    assert entry.is_valid()

    # Entry has all possible fields except col and line number and has a filename with ':'
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: C:/project/rulecheck/return-256.c: ERROR: example_rules.file_based_rule: Visited a file: return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "C:/project/rulecheck/return-256.c"
    assert entry.get_line_num() == -1
    assert entry.get_col_num() == -1
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Visited a file: return-256.c"
    assert entry.is_valid()
コード例 #3
0
def test_line_with_rule_level_error():
    """ Test parsing of line resulting from a rule-level error """
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: rulecheck: ERROR: example_rules.file_based_rule: Rule threw exception"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "rulecheck"
    assert entry.get_line_num() == -1
    assert entry.get_col_num() == -1
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Rule threw exception"
    assert entry.is_valid()
コード例 #4
0
def test_line_with_all_parts_and_warning_level():
    """ Test parsing of line with all elements and WARNING level """
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: ./../rulecheck/return-256.c:2:4: WARNING: example_rules.file_based_rule: Visited return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "./../rulecheck/return-256.c"
    assert entry.get_line_num() == 2
    assert entry.get_col_num() == 4
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.WARNING
    assert entry.get_message() == "Visited return-256.c"
    assert entry.is_valid()
コード例 #5
0
def test_line_with_no_line_num():
    """ Test parsing of line with all elements except line and col numbers"""
    entry = IgnoreFileEntry(
        "b0b91dbc35617b55b5620613f8e79bee: ./../rulecheck/return-256.c: ERROR: example_rules.file_based_rule: Visited return-256.c"
    )

    assert entry.get_hash() == "b0b91dbc35617b55b5620613f8e79bee"
    assert entry.get_file_name() == "./../rulecheck/return-256.c"
    assert entry.get_line_num() == -1
    assert entry.get_col_num() == -1
    assert entry.get_rule_name() == "example_rules.file_based_rule"
    assert entry.get_log_level() == LogType.ERROR
    assert entry.get_message() == "Visited return-256.c"
    assert entry.is_valid()