From ad34e39a4a320310b1edd9fc4d7e740373510c69 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 20 Jan 2012 18:39:27 -0500 Subject: [PATCH] Make test tools interactive By bypassing readlines() buffering. --- test/shaping/hb_test_tools.py | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/test/shaping/hb_test_tools.py b/test/shaping/hb_test_tools.py index fb2b62241..c9b13bdb0 100644 --- a/test/shaping/hb_test_tools.py +++ b/test/shaping/hb_test_tools.py @@ -25,6 +25,10 @@ class Colors: else: return Colors.Null + @staticmethod + def Default (argv = []): + return Colors.ANSI + class FancyDiffer: @@ -80,6 +84,7 @@ class FancyDiffer: for l in f1: sys.stdout.writelines (["-", colors.green, l1, colors.end]) + class DiffFilters: @staticmethod @@ -89,6 +94,15 @@ class DiffFilters: sys.stdout.writelines (l) +class ShapeFilters: + + @staticmethod + def filter_failures (f): + for l in f: + if l[0] in '-+': + sys.stdout.writelines (l) + + class UtilMains: @staticmethod @@ -99,7 +113,7 @@ class UtilMains: sys.exit (1) for s in sys.argv[1:]: - callback (open_file_or_stdin (s)) + callback (FileHelpers.open_file_or_stdin (s)) @staticmethod def filter_multiple_strings_or_stdin (callback, string_mnemonic, \ @@ -113,7 +127,10 @@ class UtilMains: if '--stdin' in sys.argv: sys.argv.remove ('--stdin') - for line in sys.stdin.readlines (): + while (1): + line = sys.stdin.readline () + if not len (line): + break print callback (line) else: args = sys.argv[1:] @@ -171,10 +188,14 @@ class Unicode: s = [unichr (int (x, 16)) for x in re.split ('[, \n]', s) if len (x)] return ' + '.join (Unicode.pretty_name (x) for x in s) -def open_file_or_stdin (f): - if f == '-': - return sys.stdin - return file (f) + +class FileHelprs: + + @staticmethod + def open_file_or_stdin (f): + if f == '-': + return sys.stdin + return file (f) if __name__ == '__main__': pass