From 0d962727403be73b0b1eac234ed81b941dd7cae9 Mon Sep 17 00:00:00 2001 From: Lennart Regebro Date: Wed, 22 Aug 2012 18:01:49 +0200 Subject: Issue #310: Non-ascii characters in a namespace __init__.py causes errors. --HG-- branch : distribute extra : rebase_source : 668e1c79a2bcc314bcf1f7213b317766bb8511ab --- setuptools/tests/test_test.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'setuptools/tests/test_test.py') 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 -- cgit v1.2.1