]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix determination of Metadata version in packaging (#8933).
authorÉric Araujo <merwok@netwok.org>
Sat, 10 Sep 2011 03:22:48 +0000 (05:22 +0200)
committerÉric Araujo <merwok@netwok.org>
Sat, 10 Sep 2011 03:22:48 +0000 (05:22 +0200)
Original patch by Filip Gruszczyński.

Lib/packaging/metadata.py
Lib/packaging/tests/test_metadata.py
Misc/NEWS

index 7d7fc6b775427433b6bb6a5465b1438acdb61af4..dbb53b265c369c6584d684afee00cfcbbb0ab75b 100644 (file)
@@ -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',
index b79f566254900aa663f648be491e7a805da42d56..68b3d9722add684e58785887f1a1bd4113da49f0 100644 (file)
@@ -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)
index 67b8cf85a1999a1ba6d4d7edb6d1d1417b7a0daa..3d358239e8ab953c5e31650d8cc02a5e4058be82 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -274,9 +274,9 @@ Core and Builtins
 Library
 -------
 
-- Issue #8933: distutils' PKG-INFO files will now correctly report
-  Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is
-  present.
+- Issue #8933: distutils' PKG-INFO files and packaging's METADATA files will
+  now correctly report Metadata-Version: 1.1 instead of 1.0 if a Classifier or
+  Download-URL field is present.
 
 - Issue #12567: Add curses.unget_wch() function. Push a character so the next
   get_wch() will return it.