Merge "Fixes issue rendering strings containing multiple jinja expressions"

This commit is contained in:
Jenkins 2017-09-12 04:20:43 +00:00 committed by Gerrit Code Review
commit 2b985feb0b
2 changed files with 9 additions and 2 deletions
mistral
expressions
tests/unit/expressions

@ -29,8 +29,8 @@ LOG = logging.getLogger(__name__)
ANY_JINJA_REGEXP = "{{.*}}|{%.*%}"
JINJA_REGEXP = '({{(.*)}})'
JINJA_BLOCK_REGEXP = '({%(.*)%})'
JINJA_REGEXP = '({{(.*?)}})'
JINJA_BLOCK_REGEXP = '({%(.*?)%})'
_environment = SandboxedEnvironment(
undefined=jinja2.StrictUndefined,

@ -402,6 +402,13 @@ class InlineJinjaEvaluatorTest(base.BaseTest):
self.assertEqual(3, self._evaluator.evaluate('{{ _ }}', 3))
self.assertEqual('33', self._evaluator.evaluate('{{ _ }}{{ _ }}', 3))
def test_multiple_expressions(self):
context = {'dir': '/tmp',
'file': 'a.txt'}
expected_result = '/tmp/a.txt'
result = self._evaluator.evaluate('{{ _.dir }}/{{ _.file }}', context)
self.assertEqual(expected_result, result)
def test_function_string(self):
self.assertEqual('3', self._evaluator.evaluate('{{ _|string }}', '3'))
self.assertEqual('3', self._evaluator.evaluate('{{ _|string }}', 3))