import re def log_parser(log_file): prefix = "" pattern_types = '^(libkeymap|libkbdfile+?).*' regex_type = re.compile(pattern_types, re.MULTILINE) pattern = '^(FAIL|PASS|SKIP+?): (.+)' regex = re.compile(pattern, re.MULTILINE) end_msg = "Test results" case_list = dict() test_log = open(log_file, 'r') line = test_log.readline() while line: if end_msg in line: break # match test suite name matchs_type = regex_type.search(line) if matchs_type: groups_type = matchs_type.groups() prefix = groups_type[0] # match case and result matchs = regex.search(line) if matchs: groups = matchs.groups() case_name = prefix + " " + groups[1].strip() case_list[case_name] = [case_name, groups[0], ""] line=test_log.readline() test_log.close() return case_list