Commit 049242b8 authored by Antoine Pitrou's avatar Antoine Pitrou

Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.

Patch by Mikhail Novikov.
parents 49ac6f44 d3113740
...@@ -11,10 +11,14 @@ from __future__ import with_statement ...@@ -11,10 +11,14 @@ from __future__ import with_statement
# Testing imports # Testing imports
from . import support from . import support
from .support import driver, test_dir from .support import driver, test_dir
from test.support import verbose
# Python imports # Python imports
import os import os
import sys
import unittest import unittest
import warnings
import subprocess
# Local imports # Local imports
from lib2to3.pgen2 import tokenize from lib2to3.pgen2 import tokenize
...@@ -171,10 +175,12 @@ class TestParserIdempotency(support.TestCase): ...@@ -171,10 +175,12 @@ class TestParserIdempotency(support.TestCase):
try: try:
tree = driver.parse_string(source) tree = driver.parse_string(source)
except ParseError as err: except ParseError as err:
print('ParseError on file', filepath, err) if verbose > 0:
warnings.warn('ParseError on file %s (%s)' % (filepath, err))
continue continue
new = str(tree) new = str(tree)
if diff(filepath, new): x = diff(filepath, new)
if x:
self.fail("Idempotency failed: %s" % filepath) self.fail("Idempotency failed: %s" % filepath)
def test_extended_unpacking(self): def test_extended_unpacking(self):
...@@ -183,6 +189,7 @@ class TestParserIdempotency(support.TestCase): ...@@ -183,6 +189,7 @@ class TestParserIdempotency(support.TestCase):
driver.parse_string("(z, *y, w) = m\n") driver.parse_string("(z, *y, w) = m\n")
driver.parse_string("for *z, m in d: pass\n") driver.parse_string("for *z, m in d: pass\n")
class TestLiterals(GrammarTest): class TestLiterals(GrammarTest):
def validate(self, s): def validate(self, s):
...@@ -221,7 +228,7 @@ def diff(fn, result): ...@@ -221,7 +228,7 @@ def diff(fn, result):
with open('@', 'w') as f: with open('@', 'w') as f:
f.write(str(result)) f.write(str(result))
fn = fn.replace('"', '\\"') 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: finally:
try: try:
os.remove("@") os.remove("@")
......
...@@ -725,6 +725,7 @@ Stefan Norberg ...@@ -725,6 +725,7 @@ Stefan Norberg
Tim Northover Tim Northover
Joe Norton Joe Norton
Neal Norwitz Neal Norwitz
Mikhail Novikov
Michal Nowikowski Michal Nowikowski
Steffen Daode Nurpmeso Steffen Daode Nurpmeso
Nigel O'Brian Nigel O'Brian
......
...@@ -508,6 +508,9 @@ Core and Builtins ...@@ -508,6 +508,9 @@ Core and Builtins
Library Library
------- -------
- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
Patch by Mikhail Novikov.
- Issue #11841: Fix comparison bug with 'rc' versions in packaging.version. - Issue #11841: Fix comparison bug with 'rc' versions in packaging.version.
Patch by Filip Gruszczyński. Patch by Filip Gruszczyński.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment