diff options
| author | Stefan H. Holek <stefan@epy.co.at> | 2012-10-08 19:52:32 +0200 |
|---|---|---|
| committer | Stefan H. Holek <stefan@epy.co.at> | 2012-10-08 19:52:32 +0200 |
| commit | d76ec4bfdf2fe9a2bced5ca2a3610831020453c6 (patch) | |
| tree | 77ab3132075646f1755d5c72cd9e95087651dc57 /setuptools/tests/test_sdist.py | |
| parent | 6851d4e38e1e4e5a2bbbf2556523fd19675cdbf7 (diff) | |
| download | python-setuptools-git-d76ec4bfdf2fe9a2bced5ca2a3610831020453c6.tar.gz | |
Read and write manifest in UTF-8 under Python 3. Fixes #303.
--HG--
branch : distribute
extra : rebase_source : 609c654effd2711aa803f6a0e84013294026608f
Diffstat (limited to 'setuptools/tests/test_sdist.py')
| -rw-r--r-- | setuptools/tests/test_sdist.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/setuptools/tests/test_sdist.py b/setuptools/tests/test_sdist.py index 34123545..7e2f0a49 100644 --- a/setuptools/tests/test_sdist.py +++ b/setuptools/tests/test_sdist.py @@ -104,6 +104,66 @@ class TestSdistTest(unittest.TestCase): self.assertTrue(filename in cmd.filelist.files) + def test_manifest_is_written_in_utf8(self): + # Test for #303. + + # Add file with non-ASCII filename + filename = os.path.join('sdist_test', 'smörbröd.py') + open(filename, 'w').close() + + dist = Distribution(SETUP_ATTRS) + dist.script_name = 'setup.py' + cmd = sdist(dist) + cmd.ensure_finalized() + + # squelch output + old_stdout = sys.stdout + old_stderr = sys.stderr + sys.stdout = StringIO() + sys.stderr = StringIO() + try: + cmd.run() + finally: + sys.stdout = old_stdout + sys.stderr = old_stderr + + manifest = open(os.path.join('sdist_test.egg-info', 'SOURCES.txt'), 'rbU') + contents = manifest.read() + manifest.close() + self.assertTrue(len(contents)) + + # This must not fail: + contents.decode('UTF-8') + + def test_manifest_is_read_in_utf8(self): + # Test for #303. + + # Add file with non-ASCII filename + filename = os.path.join('sdist_test', 'smörbröd.py') + open(filename, 'w').close() + + dist = Distribution(SETUP_ATTRS) + dist.script_name = 'setup.py' + cmd = sdist(dist) + cmd.ensure_finalized() + + # squelch output + old_stdout = sys.stdout + old_stderr = sys.stderr + sys.stdout = StringIO() + sys.stderr = StringIO() + try: + cmd.run() + finally: + sys.stdout = old_stdout + sys.stderr = old_stderr + + cmd.filelist.files = [] + cmd.manifest = os.path.join('sdist_test.egg-info', 'SOURCES.txt') + cmd.read_manifest() + + self.assertTrue(filename in cmd.filelist.files) + def test_suite(): return unittest.defaultTestLoader.loadTestsFromName(__name__) |
