Kaydet (Commit) 58f3c9dc authored tarafından Mariatta's avatar Mariatta Kaydeden (comit) GitHub

bpo-30109: Fix reindent.py (GH-1207)

Skip the file if it has bad encoding.
üst 6dbdedb0
...@@ -7,6 +7,7 @@ Tools directory of a Python checkout or tarball, such as reindent.py. ...@@ -7,6 +7,7 @@ Tools directory of a Python checkout or tarball, such as reindent.py.
import os import os
import unittest import unittest
from test.support.script_helper import assert_python_ok from test.support.script_helper import assert_python_ok
from test.support import findfile
from test.test_tools import scriptsdir, skip_if_missing from test.test_tools import scriptsdir, skip_if_missing
...@@ -23,6 +24,12 @@ class ReindentTests(unittest.TestCase): ...@@ -23,6 +24,12 @@ class ReindentTests(unittest.TestCase):
self.assertEqual(out, b'') self.assertEqual(out, b'')
self.assertGreater(err, b'') self.assertGreater(err, b'')
def test_reindent_file_with_bad_encoding(self):
bad_coding_path = findfile('bad_coding.py')
rc, out, err = assert_python_ok(self.script, '-r', bad_coding_path)
self.assertEqual(out, b'')
self.assertNotEqual(err, b'')
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
...@@ -118,7 +118,11 @@ def check(file): ...@@ -118,7 +118,11 @@ def check(file):
if verbose: if verbose:
print("checking", file, "...", end=' ') print("checking", file, "...", end=' ')
with open(file, 'rb') as f: with open(file, 'rb') as f:
encoding, _ = tokenize.detect_encoding(f.readline) try:
encoding, _ = tokenize.detect_encoding(f.readline)
except SyntaxError as se:
errprint("%s: SyntaxError: %s" % (file, str(se)))
return
try: try:
with open(file, encoding=encoding) as f: with open(file, encoding=encoding) as f:
r = Reindenter(f) r = Reindenter(f)
......
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