summaryrefslogtreecommitdiffstats
path: root/Lib/lib2to3/tests
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-02-27 18:55:36 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2012-02-27 18:55:36 (GMT)
commitd3113740894d07fefc1ba32b5998a4720e9e8711 (patch)
treea25d948b27a3792421e910948e8f2b7231fb7dcb /Lib/lib2to3/tests
parent2201ecbbfc9157c91242635c42fa47da15e8d0f8 (diff)
downloadcpython-d3113740894d07fefc1ba32b5998a4720e9e8711.zip
cpython-d3113740894d07fefc1ba32b5998a4720e9e8711.tar.gz
cpython-d3113740894d07fefc1ba32b5998a4720e9e8711.tar.bz2
Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
Patch by Mikhail Novikov.
Diffstat (limited to 'Lib/lib2to3/tests')
-rw-r--r--Lib/lib2to3/tests/test_parser.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py
index f32404c..3968e6a 100644
--- a/Lib/lib2to3/tests/test_parser.py
+++ b/Lib/lib2to3/tests/test_parser.py
@@ -11,10 +11,14 @@ from __future__ import with_statement
# Testing imports
from . import support
from .support import driver, test_dir
+from test.support import verbose
# Python imports
import os
+import sys
import unittest
+import warnings
+import subprocess
# Local imports
from lib2to3.pgen2 import tokenize
@@ -171,10 +175,12 @@ class TestParserIdempotency(support.TestCase):
try:
tree = driver.parse_string(source)
except ParseError as err:
- print('ParseError on file', filepath, err)
+ if verbose > 0:
+ warnings.warn('ParseError on file %s (%s)' % (filepath, err))
continue
new = str(tree)
- if diff(filepath, new):
+ x = diff(filepath, new)
+ if x:
self.fail("Idempotency failed: %s" % filepath)
def test_extended_unpacking(self):
@@ -183,6 +189,7 @@ class TestParserIdempotency(support.TestCase):
driver.parse_string("(z, *y, w) = m\n")
driver.parse_string("for *z, m in d: pass\n")
+
class TestLiterals(GrammarTest):
def validate(self, s):
@@ -221,7 +228,7 @@ def diff(fn, result):
with open('@', 'w') as f:
f.write(str(result))
fn = fn.replace('"', '\\"')
- return os.system('diff -u "%s" @' % fn)
+ return subprocess.call(['diff', '-u', fn, '@'], stdout=(subprocess.DEVNULL if verbose < 1 else None))
finally:
try:
os.remove("@")