diff options
| author | Lennart Regebro <regebro@gmail.com> | 2012-08-22 18:01:49 +0200 |
|---|---|---|
| committer | Lennart Regebro <regebro@gmail.com> | 2012-08-22 18:01:49 +0200 |
| commit | dcb37b07582bb69e3344fc09185d79cd80446bc7 (patch) | |
| tree | 97b1f20e51bac7d9390619a51837211dbe5bd467 /setuptools | |
| parent | 62a667e2d9be0af88aed8e7e39c4bd017ca3c8d6 (diff) | |
| download | python-setuptools-bitbucket-dcb37b07582bb69e3344fc09185d79cd80446bc7.tar.gz | |
Issue #310: Non-ascii characters in a namespace __init__.py causes errors.
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/command/build_py.py | 4 | ||||
| -rw-r--r-- | setuptools/tests/test_test.py | 21 |
2 files changed, 17 insertions, 8 deletions
diff --git a/setuptools/command/build_py.py b/setuptools/command/build_py.py index d53960fe..505dd4f3 100644 --- a/setuptools/command/build_py.py +++ b/setuptools/command/build_py.py @@ -215,8 +215,8 @@ class build_py(_build_py, Mixin2to3): else: return init_py - f = open(init_py,'rU') - if 'declare_namespace' not in f.read(): + f = open(init_py,'rbU') + if 'declare_namespace'.encode() not in f.read(): from distutils import log log.warn( "WARNING: %s is a namespace package, but its __init__.py does\n" diff --git a/setuptools/tests/test_test.py b/setuptools/tests/test_test.py index 04134ec5..ddbebaa9 100644 --- a/setuptools/tests/test_test.py +++ b/setuptools/tests/test_test.py @@ -1,3 +1,5 @@ +# -*- coding: UTF-8 -*- + """develop tests """ import sys @@ -21,13 +23,19 @@ setup(name='foo', ) """ -NS_INIT = """ +NS_INIT = """# -*- coding: Latin-1 -*- +# Söme Arbiträry Ünicode to test Issüé 310 try: __import__('pkg_resources').declare_namespace(__name__) except ImportError: from pkgutil import extend_path __path__ = extend_path(__path__, __name__) """ +# Make sure this is Latin-1 binary, before writing: +if sys.version_info < (3,): + NS_INIT = NS_INIT.decode('UTF-8') +NS_INIT = NS_INIT.encode('Latin-1') + TEST_PY = """import unittest class TestTest(unittest.TestCase): @@ -50,23 +58,23 @@ class TestTestTest(unittest.TestCase): os.mkdir(os.path.join(self.dir, 'name', 'space', 'tests')) # setup.py setup = os.path.join(self.dir, 'setup.py') - f = open(setup, 'w') + f = open(setup, 'wt') f.write(SETUP_PY) f.close() self.old_cwd = os.getcwd() # name/__init__.py init = os.path.join(self.dir, 'name', '__init__.py') - f = open(init, 'w') + f = open(init, 'wb') f.write(NS_INIT) f.close() # name/space/__init__.py init = os.path.join(self.dir, 'name', 'space', '__init__.py') - f = open(init, 'w') + f = open(init, 'wt') f.write('#empty\n') f.close() # name/space/tests/__init__.py init = os.path.join(self.dir, 'name', 'space', 'tests', '__init__.py') - f = open(init, 'w') + f = open(init, 'wt') f.write(TEST_PY) f.close() @@ -105,7 +113,7 @@ class TestTestTest(unittest.TestCase): cmd.install_dir = site.USER_SITE cmd.user = 1 old_stdout = sys.stdout - sys.stdout = StringIO() + #sys.stdout = StringIO() try: try: # try/except/finally doesn't work in Python 2.4, so we need nested try-statements. cmd.run() @@ -113,3 +121,4 @@ class TestTestTest(unittest.TestCase): pass finally: sys.stdout = old_stdout +
\ No newline at end of file |
