Commit 2320fa08 authored by Éric Araujo's avatar Éric Araujo

Fix setup.py register failure with invalid rst in description (#13614).

Original patch by Julien Courteau and Pierre Paul Lefebvre.
parent 26ea4a08
...@@ -26,6 +26,9 @@ try: ...@@ -26,6 +26,9 @@ try:
def system_message(self, level, message, *children, **kwargs): def system_message(self, level, message, *children, **kwargs):
self.messages.append((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 HAS_DOCUTILS = True
except ImportError: except ImportError:
......
# -*- encoding: utf8 -*- # -*- encoding: utf8 -*-
"""Tests for distutils.command.register.""" """Tests for distutils.command.register."""
import sys
import os import os
import unittest import unittest
import getpass import getpass
...@@ -11,11 +10,14 @@ from test.test_support import check_warnings, run_unittest ...@@ -11,11 +10,14 @@ from test.test_support import check_warnings, run_unittest
from distutils.command import register as register_module from distutils.command import register as register_module
from distutils.command.register import register from distutils.command.register import register
from distutils.core import Distribution
from distutils.errors import DistutilsSetupError from distutils.errors import DistutilsSetupError
from distutils.tests import support from distutils.tests.test_config import PyPIRCCommandTestCase
from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
try:
import docutils
except ImportError:
docutils = None
PYPIRC_NOPASSWORD = """\ PYPIRC_NOPASSWORD = """\
[distutils] [distutils]
...@@ -264,6 +266,21 @@ class RegisterTestCase(PyPIRCCommandTestCase): ...@@ -264,6 +266,21 @@ class RegisterTestCase(PyPIRCCommandTestCase):
finally: finally:
del register_module.raw_input del register_module.raw_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 = RawInputs('2', 'tarek', 'tarek@ziade.org')
register_module.raw_input = inputs
self.addCleanup(delattr, register_module, 'raw_input')
self.assertRaises(DistutilsSetupError, cmd.run)
def test_check_metadata_deprecated(self): def test_check_metadata_deprecated(self):
# makes sure make_metadata is deprecated # makes sure make_metadata is deprecated
cmd = self._get_cmd() cmd = self._get_cmd()
......
...@@ -201,6 +201,7 @@ David Costanzo ...@@ -201,6 +201,7 @@ David Costanzo
Scott Cotton Scott Cotton
Greg Couch Greg Couch
David Cournapeau David Cournapeau
Julien Courteau
Steve Cousins Steve Cousins
Alex Coventry Alex Coventry
Matthew Dixon Cowles Matthew Dixon Cowles
...@@ -572,6 +573,7 @@ Inyeol Lee ...@@ -572,6 +573,7 @@ Inyeol Lee
Thomas Lee Thomas Lee
Christopher Lee Christopher Lee
Luc Lefebvre Luc Lefebvre
Pierre Paul Lefebvre
Glyph Lefkowitz Glyph Lefkowitz
Vincent Legoll Vincent Legoll
Kip Lehman Kip Lehman
......
...@@ -158,6 +158,9 @@ Library ...@@ -158,6 +158,9 @@ Library
- Issue #16628: Fix a memory leak in ctypes.resize(). - 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 #10182: The re module doesn't truncate indices to 32 bits anymore. - Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
Patch by Serhiy Storchaka. Patch by Serhiy Storchaka.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment