@staticmethod
def filter_failures (f):
- for lines in DiffHelpers.separate_test_cases (f):
+ for key, lines in DiffHelpers.separate_test_cases (f):
+ lines = list (lines)
if not DiffHelpers.test_passed (lines):
for l in lines: yield l
def print_stat (f):
passed = 0
failed = 0
- for lines in DiffHelpers.separate_test_cases (f):
+ for key, lines in DiffHelpers.separate_test_cases (f):
if DiffHelpers.test_passed (lines):
passed += 1
else:
have a colon character, groups them by identifier,
yielding lists of all lines with the same identifier.'''
- acc = []
- iden = None
- for l in f:
- if ':' not in l:
- if acc: yield acc
- acc = []
- iden = None
- yield [l]
- continue
- l_iden = l[1:l.index (':')]
- if acc and iden != l_iden:
- yield acc
- acc = []
- iden = l_iden
- acc.append (l)
- if acc: yield acc
+ def identifier (l):
+ if ':' in l[1:]:
+ return l[1:l.index (':')]
+ return l
+ return groupby (f, key=identifier)
@staticmethod
def test_passed (lines):