From 43383ea01595a910c38e28dacb1c84bc690eb236 Mon Sep 17 00:00:00 2001 From: Gaurav Juvekar Date: Wed, 10 May 2017 12:07:36 +0530 Subject: Fix UtilTests to use different IO buffering for py2/3 --- src/engine/SCons/UtilTests.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/engine/SCons/UtilTests.py b/src/engine/SCons/UtilTests.py index 616d419..0d1b7bb 100644 --- a/src/engine/SCons/UtilTests.py +++ b/src/engine/SCons/UtilTests.py @@ -186,12 +186,17 @@ class UtilTestCase(unittest.TestCase): try: node, expect, withtags = self.tree_case_1() - sys.stdout = io.StringIO() + if sys.version_info.major < 3: + IOStream = io.BytesIO + else: + IOStream = io.StringIO + + sys.stdout = IOStream() print_tree(node, get_children) actual = sys.stdout.getvalue() assert expect == actual, (expect, actual) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, showtags=1) actual = sys.stdout.getvalue() assert withtags == actual, (withtags, actual) @@ -200,12 +205,12 @@ class UtilTestCase(unittest.TestCase): # the same as the default (see above) node, expect, withtags = self.tree_case_2(prune=0) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, 0) actual = sys.stdout.getvalue() assert expect == actual, (expect, actual) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, 0, showtags=1) actual = sys.stdout.getvalue() assert withtags == actual, (withtags, actual) @@ -213,7 +218,7 @@ class UtilTestCase(unittest.TestCase): # Test output with prune=1 node, expect, withtags = self.tree_case_2(prune=1) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, 1) actual = sys.stdout.getvalue() assert expect == actual, (expect, actual) @@ -222,12 +227,12 @@ class UtilTestCase(unittest.TestCase): # again. This wasn't possible in version 2.4.1 and earlier # due to a bug in print_tree (visited was set to {} as default # parameter) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, 1) actual = sys.stdout.getvalue() assert expect == actual, (expect, actual) - sys.stdout = io.StringIO() + sys.stdout = IOStream() print_tree(node, get_children, 1, showtags=1) actual = sys.stdout.getvalue() assert withtags == actual, (withtags, actual) -- cgit v0.12