debug statements hook works for non-utf8 files

This commit is contained in:
Anthony Sottile 2017-08-14 20:20:32 -07:00
parent 5c2430e238
commit 2913408db3
2 changed files with 11 additions and 1 deletions

View file

@ -35,7 +35,7 @@ class ImportStatementParser(ast.NodeVisitor):
def check_file_for_debug_statements(filename):
try:
ast_obj = ast.parse(open(filename).read(), filename=filename)
ast_obj = ast.parse(open(filename, 'rb').read(), filename=filename)
except SyntaxError:
print('{} - Could not parse ast'.format(filename))
print()

View file

@ -1,3 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import unicode_literals
import ast
import pytest
@ -77,3 +81,9 @@ def test_returns_zero_for_passing_file():
def test_syntaxerror_file():
ret = debug_statement_hook([get_resource_path('cannot_parse_ast.notpy')])
assert ret == 1
def test_non_utf8_file(tmpdir):
f_py = tmpdir.join('f.py')
f_py.write_binary('# -*- coding: cp1252 -*-\nx = ""\n'.encode('cp1252'))
assert debug_statement_hook((f_py.strpath,)) == 0