summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/distutils/dist.py2
-rw-r--r--Lib/distutils/log.py3
-rw-r--r--Lib/distutils/tests/support.py3
-rw-r--r--Lib/distutils/tests/test_dist.py7
-rw-r--r--Misc/NEWS2
5 files changed, 16 insertions, 1 deletions
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index ac5a0ca..1c1ea47 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -354,7 +354,7 @@ Common commands: (see '--help-commands' for more)
parser = ConfigParser()
for filename in filenames:
if DEBUG:
- self.announce(" reading", filename)
+ self.announce(" reading %s" % filename)
parser.read(filename)
for section in parser.sections():
options = parser.options(section)
diff --git a/Lib/distutils/log.py b/Lib/distutils/log.py
index 6f949d5..7588570 100644
--- a/Lib/distutils/log.py
+++ b/Lib/distutils/log.py
@@ -17,6 +17,9 @@ class Log:
self.threshold = threshold
def _log(self, level, msg, args):
+ if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
+ raise ValueError('%s wrong log level' % str(level))
+
if level >= self.threshold:
if args:
msg = msg % args
diff --git a/Lib/distutils/tests/support.py b/Lib/distutils/tests/support.py
index 1255413..ea12211 100644
--- a/Lib/distutils/tests/support.py
+++ b/Lib/distutils/tests/support.py
@@ -4,6 +4,7 @@ import shutil
import tempfile
from distutils import log
+from distutils.log import DEBUG, INFO, WARN, ERROR, FATAL
from distutils.core import Distribution
from test.support import EnvironmentVarGuard
@@ -25,6 +26,8 @@ class LoggingSilencer(object):
super().tearDown()
def _log(self, level, msg, args):
+ if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
+ raise ValueError('%s wrong log level' % str(level))
self.logs.append((level, msg, args))
def get_logs(self, *levels):
diff --git a/Lib/distutils/tests/test_dist.py b/Lib/distutils/tests/test_dist.py
index 91297f0..799b0c0 100644
--- a/Lib/distutils/tests/test_dist.py
+++ b/Lib/distutils/tests/test_dist.py
@@ -171,6 +171,13 @@ class DistributionTestCase(support.LoggingSilencer,
self.assertEquals(cmds, ['distutils.command', 'one', 'two'])
+ def test_announce(self):
+ # make sure the level is known
+ dist = Distribution()
+ args = ('ok',)
+ kwargs = {'level': 'ok2'}
+ self.assertRaises(ValueError, dist.announce, args, kwargs)
+
class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
unittest.TestCase):
diff --git a/Misc/NEWS b/Misc/NEWS
index 528b3fd..6948fc6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1064,6 +1064,8 @@ Core and Builtins
Library
-------
+- Issue #6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
+
- Issue #6163: Fixed HP-UX runtime library dir options in
distutils.unixcompiler. Initial patch by Sridhar Ratnakumar and
Michael Haubenwallner.