]> granicus.if.org Git - python/commitdiff
Issue #12112: packaging reads and writes setup.cfg using UTF-8
authorVictor Stinner <victor.stinner@haypocalc.com>
Thu, 19 May 2011 16:45:32 +0000 (18:45 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Thu, 19 May 2011 16:45:32 +0000 (18:45 +0200)
Lib/packaging/config.py
Lib/packaging/create.py
Lib/packaging/tests/support.py
Lib/packaging/tests/test_config.py
Lib/packaging/tests/test_create.py

index 9239f4a83b6f9320626db8dda93aba2fd3401df0..9875f6881c95f740081109cd37dfbf13c26ce6ea 100644 (file)
@@ -282,7 +282,7 @@ class Config:
 
         for filename in filenames:
             logger.debug("  reading %s", filename)
-            parser.read(filename)
+            parser.read(filename, encoding='utf-8')
 
             if os.path.split(filename)[-1] == 'setup.cfg':
                 self._read_setup_cfg(parser, filename)
index 0676cf188f7d074dc021313776f9e445deecf292..1df73da6f10acf47ebddb448b3cd834e20606711 100644 (file)
@@ -276,7 +276,7 @@ class MainProgram:
                 return
             shutil.move(_FILENAME, '%s.old' % _FILENAME)
 
-        with open(_FILENAME, 'w') as fp:
+        with open(_FILENAME, 'w', encoding='utf-8') as fp:
             fp.write('[metadata]\n')
             # simple string entries
             for name in ('name', 'version', 'summary', 'download_url'):
index dbd8683269f9863421afde789894b94c9967a45a..329b75504a765d93bad294a9b9925e0a6f9cd807 100644 (file)
@@ -138,7 +138,7 @@ class TempdirManager:
         d = tempfile.mkdtemp(dir=self._basetempdir)
         return d
 
-    def write_file(self, path, content='xxx'):
+    def write_file(self, path, content='xxx', encoding=None):
         """Write a file at the given path.
 
         path can be a string, a tuple or a list; if it's a tuple or list,
@@ -146,7 +146,7 @@ class TempdirManager:
         """
         if isinstance(path, (list, tuple)):
             path = os.path.join(*path)
-        with open(path, 'w') as f:
+        with open(path, 'w', encoding=encoding) as f:
             f.write(content)
 
     def create_dist(self, **kw):
index 8908c4fa4c22a1bc6ad501ac40828fe15fd1ec37..e6e558622ac94217ea32cf43247fdc8cae429acf 100644 (file)
@@ -183,7 +183,7 @@ class ConfigTestCase(support.TempdirManager,
                 'setup-hook': 'packaging.tests.test_config.hook'}
         if kwargs:
             opts.update(kwargs)
-        self.write_file('setup.cfg', SETUP_CFG % opts)
+        self.write_file('setup.cfg', SETUP_CFG % opts, encoding='utf-8')
 
     def get_dist(self):
         dist = Distribution()
index 9c7a91220c085a9e863910a6f3484112cbb9c5dc..42cf34bdd1e3e9bf8087c2658871b1f0f85f5ed8 100644 (file)
@@ -91,7 +91,7 @@ class CreateTestCase(support.TempdirManager,
     def test_convert_setup_py_to_cfg(self):
         self.write_file((self.wdir, 'setup.py'),
                         dedent("""
-        # -*- coding: utf-8 -*-
+        # coding: utf-8
         from distutils.core import setup
 
         long_description = '''My super Death-scription
@@ -124,12 +124,12 @@ class CreateTestCase(support.TempdirManager,
                            },
               scripts=['my_script', 'bin/run'],
               )
-        """))
+        """), encoding='utf-8')
         sys.stdin.write('y\n')
         sys.stdin.seek(0)
         main()
 
-        with open(os.path.join(self.wdir, 'setup.cfg')) as fp:
+        with open(os.path.join(self.wdir, 'setup.cfg'), encoding='utf-8') as fp:
             lines = set(line.rstrip() for line in fp)
 
         # FIXME don't use sets
@@ -171,7 +171,7 @@ class CreateTestCase(support.TempdirManager,
     def test_convert_setup_py_to_cfg_with_description_in_readme(self):
         self.write_file((self.wdir, 'setup.py'),
                         dedent("""
-        # -*- coding: utf-8 -*-
+        # coding: utf-8
         from distutils.core import setup
         with open('README.txt') as fp:
             long_description = fp.read()
@@ -191,7 +191,7 @@ class CreateTestCase(support.TempdirManager,
                 ('share/man', ['pyxfoil.1']),
               ],
         )
-        """))
+        """), encoding='utf-8')
         self.write_file((self.wdir, 'README.txt'),
                         dedent('''
 My super Death-scription
@@ -202,7 +202,7 @@ ho, baby!
         sys.stdin.seek(0)
         # FIXME Out of memory error.
         main()
-        with open(os.path.join(self.wdir, 'setup.cfg')) as fp:
+        with open(os.path.join(self.wdir, 'setup.cfg'), encoding='utf-8') as fp:
             lines = set(line.rstrip() for line in fp)
 
         self.assertEqual(lines, set(['',