]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix setup.py register failure with invalid rst in description (#13614).
authorÉric Araujo <aeric@mtlpy.org>
Sun, 9 Dec 2012 03:41:11 +0000 (22:41 -0500)
committerÉric Araujo <aeric@mtlpy.org>
Sun, 9 Dec 2012 03:41:11 +0000 (22:41 -0500)
Original patch by Julien Courteau and Pierre Paul Lefebvre.

Lib/distutils/command/check.py
Lib/distutils/tests/test_register.py
Misc/ACKS
Misc/NEWS

index b67c79530878e06e05c5d0255782a33d679a56a4..22b9349dd6057ffff93e53b652d49fe35c6a2302 100644 (file)
@@ -23,6 +23,9 @@ try:
 
         def system_message(self, level, message, *children, **kwargs):
             self.messages.append((level, message, children, kwargs))
+            return nodes.system_message(message, level=level,
+                                        type=self.levels[level],
+                                        *children, **kwargs)
 
     HAS_DOCUTILS = True
 except Exception:
index 5863ae1422b6715eb08edbfad5c6db2b637904c3..a86b8606e4e68193266f7d4f4e3a06f5816fdf0c 100644 (file)
@@ -1,5 +1,4 @@
 """Tests for distutils.command.register."""
-import sys
 import os
 import unittest
 import getpass
@@ -10,11 +9,14 @@ from test.support import check_warnings, run_unittest
 
 from distutils.command import register as register_module
 from distutils.command.register import register
-from distutils.core import Distribution
 from distutils.errors import DistutilsSetupError
 
-from distutils.tests import support
-from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
+from distutils.tests.test_config import PyPIRCCommandTestCase
+
+try:
+    import docutils
+except ImportError:
+    docutils = None
 
 PYPIRC_NOPASSWORD = """\
 [distutils]
@@ -193,6 +195,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
         self.assertEqual(headers['Content-length'], '290')
         self.assertTrue((b'tarek') in req.data)
 
+    @unittest.skipUnless(docutils is not None, 'needs docutils')
     def test_strict(self):
         # testing the script option
         # when on, the register command stops if
@@ -205,13 +208,6 @@ class RegisterTestCase(PyPIRCCommandTestCase):
         cmd.strict = 1
         self.assertRaises(DistutilsSetupError, cmd.run)
 
-        # we don't test the reSt feature if docutils
-        # is not installed
-        try:
-            import docutils
-        except ImportError:
-            return
-
         # metadata are OK but long_description is broken
         metadata = {'url': 'xxx', 'author': 'xxx',
                     'author_email': 'éxéxé',
@@ -265,6 +261,22 @@ class RegisterTestCase(PyPIRCCommandTestCase):
         finally:
             del register_module.input
 
+    @unittest.skipUnless(docutils is not None, 'needs docutils')
+    def test_register_invalid_long_description(self):
+        description = ':funkie:`str`'  # mimic Sphinx-specific markup
+        metadata = {'url': 'xxx', 'author': 'xxx',
+                    'author_email': 'xxx',
+                    'name': 'xxx', 'version': 'xxx',
+                    'long_description': description}
+        cmd = self._get_cmd(metadata)
+        cmd.ensure_finalized()
+        cmd.strict = True
+        inputs = Inputs('2', 'tarek', 'tarek@ziade.org')
+        register_module.input = inputs
+        self.addCleanup(delattr, register_module, 'input')
+
+        self.assertRaises(DistutilsSetupError, cmd.run)
+
     def test_check_metadata_deprecated(self):
         # makes sure make_metadata is deprecated
         cmd = self._get_cmd()
index 05670693d8cd5843af5198ec4bc1332523cb01b4..831885b6ba579260e1ae65fe489e46770b9acf07 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -222,6 +222,7 @@ David Costanzo
 Scott Cotton
 Greg Couch
 David Cournapeau
+Julien Courteau
 Steve Cousins
 Alex Coventry
 Matthew Dixon Cowles
@@ -621,6 +622,7 @@ Thomas Lee
 Christopher Lee
 Tennessee Leeuwenburg
 Luc Lefebvre
+Pierre Paul Lefebvre
 Glyph Lefkowitz
 Vincent Legoll
 Kip Lehman
index 3adc531ab659a29a9fb2cedde596abfe1458c5a3..061952d285253225ea78ca86dbde0b36d2000053 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -177,6 +177,9 @@ Library
 
 - Issue #16628: Fix a memory leak in ctypes.resize().
 
+- Issue #13614: Fix setup.py register failure with invalid rst in description.
+  Patch by Julien Courteau and Pierre Paul Lefebvre.
+
 - Issue #13512: Create ~/.pypirc securely (CVE-2011-4944).  Initial patch by
   Philip Jenvey, tested by Mageia and Debian.