1111# Testing imports
1212from . import support
1313from .support import driver , test_dir
14+ from test .support import verbose
1415
1516# Python imports
1617import os
18+ import sys
1719import unittest
20+ import warnings
21+ import subprocess
1822
1923# Local imports
2024from lib2to3 .pgen2 import tokenize
@@ -171,10 +175,12 @@ def test_all_project_files(self):
171175 try :
172176 tree = driver .parse_string (source )
173177 except ParseError as err :
174- print ('ParseError on file' , filepath , err )
178+ if verbose > 0 :
179+ warnings .warn ('ParseError on file %s (%s)' % (filepath , err ))
175180 continue
176181 new = str (tree )
177- if diff (filepath , new ):
182+ x = diff (filepath , new )
183+ if x :
178184 self .fail ("Idempotency failed: %s" % filepath )
179185
180186 def test_extended_unpacking (self ):
@@ -183,6 +189,7 @@ def test_extended_unpacking(self):
183189 driver .parse_string ("(z, *y, w) = m\n " )
184190 driver .parse_string ("for *z, m in d: pass\n " )
185191
192+
186193class TestLiterals (GrammarTest ):
187194
188195 def validate (self , s ):
@@ -221,7 +228,7 @@ def diff(fn, result):
221228 with open ('@' , 'w' ) as f :
222229 f .write (str (result ))
223230 fn = fn .replace ('"' , '\\ "' )
224- return os . system ( 'diff -u "%s" @' % fn )
231+ return subprocess . call ([ 'diff' , '-u' , fn , '@' ], stdout = ( subprocess . DEVNULL if verbose < 1 else None ) )
225232 finally :
226233 try :
227234 os .remove ("@" )
0 commit comments