[pypy-commit] pypy default: Test and fix for issue856.
arigo
noreply at buildbot.pypy.org
Sat Sep 3 11:57:50 CEST 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r47037:96deb30da7fc
Date: 2011-09-03 11:57 +0200
http://bitbucket.org/pypy/pypy/changeset/96deb30da7fc/
Log: Test and fix for issue856.
diff --git a/pypy/translator/goal/app_main.py b/pypy/translator/goal/app_main.py
--- a/pypy/translator/goal/app_main.py
+++ b/pypy/translator/goal/app_main.py
@@ -260,6 +260,8 @@
try:
import _file
except ImportError:
+ if sys.version_info < (2, 7):
+ return
import ctypes # HACK: while running on top of CPython
set_file_encoding = ctypes.pythonapi.PyFile_SetEncodingAndErrors
set_file_encoding.argtypes = [ctypes.py_object, ctypes.c_char_p, ctypes.c_char_p]
@@ -479,7 +481,8 @@
print >> sys.stderr, "'import site' failed"
readenv = not ignore_environment
- io_encoding = readenv and os.getenv("PYTHONIOENCODING")
+ io_encoding = ((readenv and os.getenv("PYTHONIOENCODING"))
+ or sys.getfilesystemencoding())
if io_encoding:
set_io_encoding(io_encoding)
diff --git a/pypy/translator/goal/test2/test_app_main.py b/pypy/translator/goal/test2/test_app_main.py
--- a/pypy/translator/goal/test2/test_app_main.py
+++ b/pypy/translator/goal/test2/test_app_main.py
@@ -739,6 +739,19 @@
data = self.run(p + os.sep)
assert data == p + os.sep + '\n'
+ def test_getfilesystemencoding(self):
+ if sys.version_info < (2, 7):
+ skip("test requires Python >= 2.7")
+ p = getscript_in_dir("""
+ import sys
+ sys.stdout.write(u'15\u20ac')
+ sys.stdout.flush()
+ """)
+ env = os.environ.copy()
+ env["LC_CTYPE"] = 'en_US.UTF-8'
+ data = self.run(p, env=env)
+ assert data == '15\xe2\x82\xac'
+
def test_pythonioencoding(self):
if sys.version_info < (2, 7):
skip("test requires Python >= 2.7")
More information about the pypy-commit
mailing list