def _substitute(self, raw_tokens, local_vars): vars = dict(self._global_vars) vars.update(local_vars) return [util.apply_subs(token, vars) for token in raw_tokens]
def test_substitution_vars_are_case_sensitive(self): result = util.apply_subs('$foo $FOO', {'foo': 'bar', 'FOO': 'BAR'}) self.assertEqual('bar BAR', result)
def test_substitution_value_contains_escape_char(self): result = util.apply_subs('$foo', {'foo': r'\$'}) self.assertEqual(r'\$', result)
def test_one_substitution_with_escape_char(self): result = util.apply_subs(r'$foo\$', {'foo': 'bar'}) self.assertEqual('bar$', result)
def test_multiple_non_space_separated_bracket_substitution(self): result = util.apply_subs('$foo1$foo2', {'foo1': 'bar1', 'foo2': 'bar2'}) self.assertEqual('bar1bar2', result)
def test_one_substitution_with_text(self): result = util.apply_subs('abc $foo xyz', {'foo': 'bar'}) self.assertEqual('abc bar xyz', result)
def test_one_bracket_substitution(self): result = util.apply_subs('${foo}', {'foo': 'bar'}) self.assertEqual('bar', result)
def test_no_substitution_with_escape_char(self): result = util.apply_subs(r'bar\$', {}) self.assertEqual('bar$', result)
def test_no_substitution_with_extra_variables(self): result = util.apply_subs('bar', {'foo': 'bar'}) self.assertEqual('bar', result)
def test_no_substitution(self): result = util.apply_subs('bar', {}) self.assertEqual('bar', result)