mirror of https://github.com/python/cpython
Merged revisions 78991-78992,78994 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r78991 | martin.v.loewis | 2010-03-16 12:03:13 +0100 (Di, 16 Mär 2010) | 9 lines Merged revisions 78976 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r78976 | martin.v.loewis | 2010-03-15 14:00:17 +0100 (Mo, 15 Mär 2010) | 1 line Issue #6716: Quote -x arguments of compileall in MSI installer. ........ ................ r78992 | martin.v.loewis | 2010-03-16 14:19:21 +0100 (Di, 16 Mär 2010) | 2 lines Issue #6716/2: Backslash-replace error output in compilall. ................ r78994 | martin.v.loewis | 2010-03-16 17:19:47 +0100 (Di, 16 Mär 2010) | 1 line Issue #6716/3: Exclude 2to3 tests from compileall. ................
This commit is contained in:
parent
1d6af707cf
commit
e96ac3a33a
|
@ -77,7 +77,10 @@ def compile_dir(dir, maxlevels=10, ddir=None,
|
|||
print('*** Error compiling', fullname, '...')
|
||||
else:
|
||||
print('*** ', end='')
|
||||
print(err.msg)
|
||||
# escape non-printable characters in msg
|
||||
msg = err.msg.encode(sys.stdout.encoding, 'backslashreplace')
|
||||
msg = msg.decode(sys.stdout.encoding)
|
||||
print(msg)
|
||||
success = 0
|
||||
except (SyntaxError, UnicodeError, IOError) as e:
|
||||
if quiet:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import sys
|
||||
import compileall
|
||||
import imp
|
||||
import os
|
||||
|
@ -9,6 +10,7 @@ import tempfile
|
|||
import time
|
||||
from test import support
|
||||
import unittest
|
||||
import io
|
||||
|
||||
|
||||
class CompileallTests(unittest.TestCase):
|
||||
|
@ -55,8 +57,30 @@ class CompileallTests(unittest.TestCase):
|
|||
self.recreation_check(b'\0\0\0\0')
|
||||
|
||||
|
||||
class EncodingTest(unittest.TestCase):
|
||||
'Issue 6716: compileall should escape source code when printing errors to stdout.'
|
||||
|
||||
def setUp(self):
|
||||
self.directory = tempfile.mkdtemp()
|
||||
self.source_path = os.path.join(self.directory, '_test.py')
|
||||
with open(self.source_path, 'w', encoding='utf-8') as file:
|
||||
file.write('# -*- coding: utf-8 -*-\n')
|
||||
file.write('print u"\u20ac"\n')
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.directory)
|
||||
|
||||
def test_error(self):
|
||||
try:
|
||||
orig_stdout = sys.stdout
|
||||
sys.stdout = io.TextIOWrapper(io.BytesIO(),encoding='ascii')
|
||||
compileall.compile_dir(self.directory)
|
||||
finally:
|
||||
sys.stdout = orig_stdout
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(CompileallTests)
|
||||
support.run_unittest(CompileallTests,
|
||||
EncodingTest)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -9,9 +9,17 @@ What's New in Python 3.1.3?
|
|||
|
||||
*Release date: 20XX-XX-XX*
|
||||
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #6716/2: Backslash-replace error output in compilall.
|
||||
|
||||
Build
|
||||
-----
|
||||
|
||||
- Issue #6716: Quote -x arguments of compileall in MSI installer.
|
||||
Exclude 2to3 tests from compileall.
|
||||
|
||||
- Issue #1628484: The Makefile doesn't ignore the CFLAGS environment
|
||||
variable anymore. It also forwards the LDFLAGS settings to the linker
|
||||
when building a shared library.
|
||||
|
|
|
@ -403,7 +403,7 @@ def add_ui(db):
|
|||
("VerdanaRed9", "Verdana", 9, 255, 0),
|
||||
])
|
||||
|
||||
compileargs = r'-Wi "[TARGETDIR]Lib\compileall.py" -f -x bad_coding|badsyntax|site-packages|py2_ "[TARGETDIR]Lib"'
|
||||
compileargs = r'-Wi "[TARGETDIR]Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests" "[TARGETDIR]Lib"'
|
||||
lib2to3args = r'-c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"'
|
||||
# See "CustomAction Table"
|
||||
add_data(db, "CustomAction", [
|
||||
|
|
Loading…
Reference in New Issue