30fe5dae98
Before: {{var}} -> {var}, but the regex matches at the inner brace, but re_replace returns the whole match (match.group(0) = "{var}") unchanged, passing "{{var}}" to Formatter. {{defined_var|def}} -> {{defined_var}}, because the regex matches at the inner brace and re_replace returns "{%s}" % key ("{defined_var}"), passing just "{{defined_var}}" to Formatter. {{undefined_var|def}} -> exception, because the regex again matches at the inner brace and re_replace returns default ("def"), passing "{def}" to Formatter which then fails as def is not a defined variable (assuming it isn't and allow_empty = False). {{undefined_var|defined_var}} -> value of defined_var, same as above, "{defined_var}" is passed to Formatter. By preventing the regex from matching at inner braces, none of these weird cases happen and even-braced strings are passed to Formatter unmodified. Change-Id: I8a74f9b4236ca7bcc72dd207fca23c2bf6a7c801 Co-Authored-By: Tomáš Janoušek <tomas.janousek@gooddata.com>
24 lines
743 B
XML
24 lines
743 B
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<project>
|
|
<actions/>
|
|
<description><!-- Managed by Jenkins Job Builder --></description>
|
|
<keepDependencies>false</keepDependencies>
|
|
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
|
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
|
<concurrentBuild>false</concurrentBuild>
|
|
<canRoam>true</canRoam>
|
|
<properties/>
|
|
<scm class="hudson.scm.NullSCM"/>
|
|
<builders>
|
|
<hudson.tasks.Shell>
|
|
<command>echo "{var}"
|
|
echo "{defined_var|def}"
|
|
echo "{undefined_var|def}"
|
|
echo "{undefined_var|defined_var}"
|
|
</command>
|
|
</hudson.tasks.Shell>
|
|
</builders>
|
|
<publishers/>
|
|
<buildWrappers/>
|
|
</project>
|