Fixed #1923: make sure we don't strip meaningful whitespace in PKG-INFO Description field

This commit is contained in:
Tarek Ziadé 2009-12-06 09:22:40 +00:00
parent 3513c87a21
commit 4f38317d5a
3 changed files with 21 additions and 2 deletions

View File

@ -6,6 +6,7 @@ import StringIO
import sys import sys
import unittest import unittest
import warnings import warnings
import textwrap
from distutils.dist import Distribution, fix_help_options from distutils.dist import Distribution, fix_help_options
from distutils.cmd import Command from distutils.cmd import Command
@ -381,6 +382,21 @@ class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
if line.strip() != ''] if line.strip() != '']
self.assertTrue(len(output) > 0) self.assertTrue(len(output) > 0)
def test_long_description(self):
long_desc = textwrap.dedent("""\
example::
We start here
and continue here
and end here.""")
attrs = {"name": "package",
"version": "1.0",
"long_description": long_desc}
dist = distutils.dist.Distribution(attrs)
meta = self.format_metadata(dist)
meta = meta.replace('\n' + 8 * ' ', '\n')
self.assertTrue(long_desc in meta)
def test_suite(): def test_suite():
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(DistributionTestCase)) suite.addTest(unittest.makeSuite(DistributionTestCase))

View File

@ -558,8 +558,8 @@ def rfc822_escape(header):
"""Return a version of the string escaped for inclusion in an """Return a version of the string escaped for inclusion in an
RFC-822 header, by ensuring there are 8 spaces space after each newline. RFC-822 header, by ensuring there are 8 spaces space after each newline.
""" """
lines = [x.strip() for x in header.split('\n')] lines = header.split('\n')
sep = '\n' + 8*' ' sep = '\n' + 8 * ' '
return sep.join(lines) return sep.join(lines)
_RE_VERSION = re.compile('(\d+\.\d+(\.\d+)*)') _RE_VERSION = re.compile('(\d+\.\d+(\.\d+)*)')

View File

@ -507,6 +507,9 @@ Core and Builtins
Library Library
------- -------
- Issue #1923: Fixed the removal of meaningful spaces when PKG-INFO is
generated in Distutils. Patch by Stephen Emslie.
- Issue #4120: Drop reference to CRT from manifest when building extensions with - Issue #4120: Drop reference to CRT from manifest when building extensions with
msvc9compiler. msvc9compiler.