#!/usr/bin/env python3 ''' Filters failing scenarios from a tck test run and prints them to stdout. ''' from argparse import ArgumentParser import sys def main(): argp = ArgumentParser(description=__doc__) argp.add_argument('test_log', metavar='TEST_LOG', type=str, help='Path to the log of a tck test run') args = argp.parse_args() with open(args.test_log) as f: scenario_failed = False scenario_lines = [] for line in f: if line.strip().startswith('Scenario:'): if scenario_failed: print(''.join(scenario_lines)) scenario_failed = False scenario_lines.clear() if line.strip().startswith('AssertionError'): scenario_failed = True scenario_lines.append(line) if __name__ == '__main__': main()