def test_var_foo_bar_with_otherdata(self): var = VarLoader().parse_variables('//${foo}[$]${bar}$$', DUMMY_WHERE) self.assertEqual(var, Var.join(['//', Var('foo'), '[$]', Var('bar'), '$$'])) self.assertEqual(str(var), '//${foo}[$]${bar}$$') self.assertEqual(var.format(foo='ABC', bar='DEF'), '//ABC[$]DEF$$')
def test_joined_var_in_var(self): var = VarLoader().parse_variables('${${a}a${c}}', DUMMY_WHERE) self.assertEqual( var, Var(Var.join([Var('a'), 'a', Var('c')]))) self.assertEqual( str(var), '${${a}a${c}}') self.assertEqual( var.format(a='b', c='r', bar='DEF'), 'DEF')
def test_var_foo_bar_with_otherdata(self): var = VarLoader().parse_variables('//${foo}[$]${bar}$$', DUMMY_WHERE) self.assertEqual( var, Var.join(['//', Var('foo'), '[$]', Var('bar'), '$$'])) self.assertEqual( str(var), '//${foo}[$]${bar}$$') self.assertEqual( var.format(foo='ABC', bar='DEF'), '//ABC[$]DEF$$')
def test_var_foo_bar(self): var = VarLoader().parse_variables('${foo}${bar}', DUMMY_WHERE) self.assertEqual( var, Var.join([Var('foo'), Var('bar')])) self.assertEqual( str(var), '${foo}${bar}') self.assertEqual( var.format(foo='ABC', **{'bar': 'DEF'}), 'ABCDEF')
def test_writefunc(self): # TODO: overly complicated internals here; please fix var = VarLoader().parse_variables('FUNC(${bar},baz)', DUMMY_WHERE) data = var.split('(', 1) self.assertEqual(len(data), 2) variable, value = data self.assertTrue(isinstance(variable, str)) self.assertTrue(isinstance(value, Var)) self.assertEqual(value[-1], ')') value = Var.join(value[0:-1]) self.assertEqual(value.format(bar='BAR'), 'BAR,baz')
def test_joined_var_in_var(self): var = VarLoader().parse_variables('${${a}a${c}}', DUMMY_WHERE) self.assertEqual(var, Var(Var.join([Var('a'), 'a', Var('c')]))) self.assertEqual(str(var), '${${a}a${c}}') self.assertEqual(var.format(a='b', c='r', bar='DEF'), 'DEF')
def test_var_foo_bar(self): var = VarLoader().parse_variables('${foo}${bar}', DUMMY_WHERE) self.assertEqual(var, Var.join([Var('foo'), Var('bar')])) self.assertEqual(str(var), '${foo}${bar}') self.assertEqual(var.format(foo='ABC', **{'bar': 'DEF'}), 'ABCDEF')