[Python-checkins] distutils2: make sure the Project-URL field is not transformed into a string

tarek.ziade python-checkins at python.org
Sat Mar 20 21:36:20 CET 2010


tarek.ziade pushed 98ce712a53d2 to distutils2:

http://hg.python.org/distutils2/rev/98ce712a53d2
changeset:   83:98ce712a53d2
tag:         tip
user:        Tarek Ziade <tarek at ziade.org>
date:        Sat Mar 20 16:36:00 2010 -0400
summary:     make sure the Project-URL field is not transformed into a string
files:       src/distutils2/metadata.py, src/distutils2/tests/test_metadata.py

diff --git a/src/distutils2/metadata.py b/src/distutils2/metadata.py
--- a/src/distutils2/metadata.py
+++ b/src/distutils2/metadata.py
@@ -153,6 +153,7 @@
         'Requires', 'Provides', 'Obsoletes-Dist',
         'Provides-Dist', 'Requires-Dist', 'Requires-External',
         'Project-URL')
+_LISTTUPLEFIELDS = ('Project-URL',)
 
 _ELEMENTSFIELD = ('Keywords',)
 
@@ -355,7 +356,11 @@
                 valid, val = self._platform(val)
                 if not valid:
                     continue
-                res.append(self._encode_field(val))
+                if name not in _LISTTUPLEFIELDS:
+                    res.append(self._encode_field(val))
+                else:
+                    # That's for Project-URL
+                    res.append((self._encode_field(val[0]), val[1]))
             return res
 
         elif name in _ELEMENTSFIELD:
diff --git a/src/distutils2/tests/test_metadata.py b/src/distutils2/tests/test_metadata.py
--- a/src/distutils2/tests/test_metadata.py
+++ b/src/distutils2/tests/test_metadata.py
@@ -185,6 +185,12 @@
 
         self.assertEquals(res, 0)
 
+    def test_project_url(self):
+        metadata = DistributionMetadata()
+        metadata['Project-URL'] = [('one', 'http://ok')]
+        self.assertEquals(metadata['Project-URL'],
+                          [('one', 'http://ok')])
+
 def test_suite():
     return unittest2.makeSuite(DistributionMetadataTestCase)
 

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list