bpo-30109: Fix reindent.py (GH-1207)
Skip the file if it has bad encoding.
This commit is contained in:
parent
6dbdedb0b1
commit
58f3c9dc8f
|
@ -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):
|
||||||
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):
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue