ConfigParser._interpolate(): Pass the missing key to the
InterpolationError constructor, not the KeyError exception itself.
(Caught by the new InterpolationError test.)
SafeConfigParser._interpolate_some(): Pass the right number of
arguments to the InterpolationError constructor.
(Caught by pychecker.)
diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py
index 24a4f23..7c2eba5 100644
--- a/Lib/ConfigParser.py
+++ b/Lib/ConfigParser.py
@@ -554,8 +554,8 @@
if value.find("%(") != -1:
try:
value = value % vars
- except KeyError, key:
- raise InterpolationError(key, option, section, rawval)
+ except KeyError, e:
+ raise InterpolationError(e[0], option, section, rawval)
else:
break
if value.find("%(") != -1:
@@ -599,8 +599,7 @@
try:
v = map[var]
except KeyError:
- raise InterpolationError(
- "no value found for %r" % var)
+ raise InterpolationError(var, option, section, rest)
if "%" in v:
self._interpolate_some(option, accum, v,
section, map, depth + 1)