Skip to content

Commit

Permalink
bpo-30109: Fix reindent.py (GH-1207)
Browse files Browse the repository at this point in the history
Skip the file if it has bad encoding.
  • Loading branch information
Mariatta authored Apr 20, 2017
1 parent 6dbdedb commit 58f3c9d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
7 changes: 7 additions & 0 deletions Lib/test/test_tools/test_reindent.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import os
import unittest
from test.support.script_helper import assert_python_ok
from test.support import findfile

from test.test_tools import scriptsdir, skip_if_missing

Expand All @@ -23,6 +24,12 @@ def test_help(self):
self.assertEqual(out, 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__':
unittest.main()
6 changes: 5 additions & 1 deletion Tools/scripts/reindent.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,11 @@ def check(file):
if verbose:
print("checking", file, "...", end=' ')
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:
with open(file, encoding=encoding) as f:
r = Reindenter(f)
Expand Down

0 comments on commit 58f3c9d

Please sign in to comment.