summaryrefslogtreecommitdiffstats
path: root/Lib/packaging
diff options
context:
space:
mode:
authorÉric Araujo <merwok@netwok.org>2011-09-10 03:22:48 (GMT)
committerÉric Araujo <merwok@netwok.org>2011-09-10 03:22:48 (GMT)
commite6db7a3a298e3bfe5064de2298ba6cdcb470793e (patch)
treebec2b5049f20ce1f86dedb2d4c9af1a35b4f47f3 /Lib/packaging
parent6bbd775377ae4a6e87ccce990750ac02afe83573 (diff)
downloadcpython-e6db7a3a298e3bfe5064de2298ba6cdcb470793e.zip
cpython-e6db7a3a298e3bfe5064de2298ba6cdcb470793e.tar.gz
cpython-e6db7a3a298e3bfe5064de2298ba6cdcb470793e.tar.bz2
Fix determination of Metadata version in packaging (#8933).
Original patch by Filip Gruszczyński.
Diffstat (limited to 'Lib/packaging')
-rw-r--r--Lib/packaging/metadata.py3
-rw-r--r--Lib/packaging/tests/test_metadata.py15
2 files changed, 16 insertions, 2 deletions
diff --git a/Lib/packaging/metadata.py b/Lib/packaging/metadata.py
index 7d7fc6b..dbb53b2 100644
--- a/Lib/packaging/metadata.py
+++ b/Lib/packaging/metadata.py
@@ -61,7 +61,8 @@ _314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform',
'License', 'Classifier', 'Download-URL', 'Obsoletes',
'Provides', 'Requires')
-_314_MARKERS = ('Obsoletes', 'Provides', 'Requires')
+_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier',
+ 'Download-URL')
_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform',
'Supported-Platform', 'Summary', 'Description',
diff --git a/Lib/packaging/tests/test_metadata.py b/Lib/packaging/tests/test_metadata.py
index b79f566..68b3d97 100644
--- a/Lib/packaging/tests/test_metadata.py
+++ b/Lib/packaging/tests/test_metadata.py
@@ -251,7 +251,11 @@ class MetadataTestCase(LoggingCatcher,
self.assertNotIn('Obsoletes', metadata)
metadata['Classifier'] = ['ok']
- self.assertEqual(metadata['Metadata-Version'], '1.2')
+ self.assertEqual(metadata['Metadata-Version'], '1.1')
+
+ metadata = Metadata()
+ metadata['Download-URL'] = 'ok'
+ self.assertEqual(metadata['Metadata-Version'], '1.1')
metadata = Metadata()
metadata['Obsoletes'] = 'ok'
@@ -269,6 +273,15 @@ class MetadataTestCase(LoggingCatcher,
metadata['Version'] = '1'
self.assertEqual(metadata['Metadata-Version'], '1.0')
+ # make sure the _best_version function works okay with
+ # non-conflicting fields from 1.1 and 1.2 (i.e. we want only the
+ # requires/requires-dist and co. pairs to cause a conflict, not all
+ # fields in _314_MARKERS)
+ metadata = Metadata()
+ metadata['Requires-Python'] = '3'
+ metadata['Classifier'] = ['Programming language :: Python :: 3']
+ self.assertEqual(metadata['Metadata-Version'], '1.2')
+
PKG_INFO = os.path.join(os.path.dirname(__file__),
'SETUPTOOLS-PKG-INFO')
metadata = Metadata(PKG_INFO)