Merge pull request #7866 from luca-nardelli/improve-mandatory-variables-issues

Report which variable fails interpolation when they are mandatory
This commit is contained in:
Anca Iordache 2020-12-02 20:06:25 +01:00 committed by GitHub
commit f1059d75ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View File

@ -111,12 +111,14 @@ class TemplateWithDefaults(Template):
var, _, err = braced.partition(':?')
result = mapping.get(var)
if not result:
err = err or var
raise UnsetRequiredSubstitution(err)
return result
elif '?' == sep:
var, _, err = braced.partition('?')
if var in mapping:
return mapping.get(var)
err = err or var
raise UnsetRequiredSubstitution(err)
# Modified from python2.7/string.py

View File

@ -416,7 +416,7 @@ def test_interpolate_mandatory_no_err_msg(defaults_interpolator):
with pytest.raises(UnsetRequiredSubstitution) as e:
defaults_interpolator("not ok ${BAZ?}")
assert e.value.err == ''
assert e.value.err == 'BAZ'
def test_interpolate_mixed_separators(defaults_interpolator):