mirror of https://github.com/python/cpython
Issue #12112: packaging reads/writes metadata using UTF-8
This commit is contained in:
parent
dd13dd4bcc
commit
c3364529b8
|
@ -307,7 +307,7 @@ class Metadata:
|
||||||
|
|
||||||
def read(self, filepath):
|
def read(self, filepath):
|
||||||
"""Read the metadata values from a file path."""
|
"""Read the metadata values from a file path."""
|
||||||
with open(filepath, 'r', encoding='ascii') as fp:
|
with open(filepath, 'r', encoding='utf-8') as fp:
|
||||||
self.read_file(fp)
|
self.read_file(fp)
|
||||||
|
|
||||||
def read_file(self, fileob):
|
def read_file(self, fileob):
|
||||||
|
@ -330,7 +330,7 @@ class Metadata:
|
||||||
|
|
||||||
def write(self, filepath):
|
def write(self, filepath):
|
||||||
"""Write the metadata fields to filepath."""
|
"""Write the metadata fields to filepath."""
|
||||||
with open(filepath, 'w') as fp:
|
with open(filepath, 'w', encoding='utf-8') as fp:
|
||||||
self.write_file(fp)
|
self.write_file(fp)
|
||||||
|
|
||||||
def write_file(self, fileobject):
|
def write_file(self, fileobject):
|
||||||
|
|
|
@ -78,7 +78,7 @@ class DistributionTestCase(support.TempdirManager,
|
||||||
# let's make sure the file can be written
|
# let's make sure the file can be written
|
||||||
# with Unicode fields. they are encoded with
|
# with Unicode fields. they are encoded with
|
||||||
# PKG_INFO_ENCODING
|
# PKG_INFO_ENCODING
|
||||||
with open(my_file, 'w') as fp:
|
with open(my_file, 'w', encoding='utf-8') as fp:
|
||||||
dist.metadata.write_file(fp)
|
dist.metadata.write_file(fp)
|
||||||
|
|
||||||
# regular ascii is of course always usable
|
# regular ascii is of course always usable
|
||||||
|
|
|
@ -17,7 +17,7 @@ class MetadataTestCase(LoggingCatcher,
|
||||||
|
|
||||||
def test_instantiation(self):
|
def test_instantiation(self):
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
contents = f.read()
|
contents = f.read()
|
||||||
fp = StringIO(contents)
|
fp = StringIO(contents)
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class MetadataTestCase(LoggingCatcher,
|
||||||
def test_metadata_markers(self):
|
def test_metadata_markers(self):
|
||||||
# see if we can be platform-aware
|
# see if we can be platform-aware
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
content = f.read() % sys.platform
|
content = f.read() % sys.platform
|
||||||
metadata = Metadata(platform_dependent=True)
|
metadata = Metadata(platform_dependent=True)
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ class MetadataTestCase(LoggingCatcher,
|
||||||
|
|
||||||
def test_description(self):
|
def test_description(self):
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
content = f.read() % sys.platform
|
content = f.read() % sys.platform
|
||||||
metadata = Metadata()
|
metadata = Metadata()
|
||||||
metadata.read_file(StringIO(content))
|
metadata.read_file(StringIO(content))
|
||||||
|
@ -97,7 +97,7 @@ class MetadataTestCase(LoggingCatcher,
|
||||||
|
|
||||||
def test_mapping_api(self):
|
def test_mapping_api(self):
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
content = f.read() % sys.platform
|
content = f.read() % sys.platform
|
||||||
metadata = Metadata(fileobj=StringIO(content))
|
metadata = Metadata(fileobj=StringIO(content))
|
||||||
self.assertIn('Version', metadata.keys())
|
self.assertIn('Version', metadata.keys())
|
||||||
|
@ -130,14 +130,14 @@ class MetadataTestCase(LoggingCatcher,
|
||||||
|
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__),
|
PKG_INFO = os.path.join(os.path.dirname(__file__),
|
||||||
'SETUPTOOLS-PKG-INFO')
|
'SETUPTOOLS-PKG-INFO')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
content = f.read()
|
content = f.read()
|
||||||
metadata.read_file(StringIO(content))
|
metadata.read_file(StringIO(content))
|
||||||
self.assertEqual(metadata['Metadata-Version'], '1.0')
|
self.assertEqual(metadata['Metadata-Version'], '1.0')
|
||||||
|
|
||||||
PKG_INFO = os.path.join(os.path.dirname(__file__),
|
PKG_INFO = os.path.join(os.path.dirname(__file__),
|
||||||
'SETUPTOOLS-PKG-INFO2')
|
'SETUPTOOLS-PKG-INFO2')
|
||||||
with open(PKG_INFO, 'r') as f:
|
with open(PKG_INFO, 'r', encoding='utf-8') as f:
|
||||||
content = f.read()
|
content = f.read()
|
||||||
metadata.read_file(StringIO(content))
|
metadata.read_file(StringIO(content))
|
||||||
self.assertEqual(metadata['Metadata-Version'], '1.1')
|
self.assertEqual(metadata['Metadata-Version'], '1.1')
|
||||||
|
|
Loading…
Reference in New Issue