Mercurial > genshi > mirror
changeset 180:061491fb4ea8 trunk
String literals in XPath expressions are assumed to be UTF-8 encoded.
author | cmlenz |
---|---|
date | Mon, 21 Aug 2006 19:25:29 +0000 |
parents | 13909179e5e1 |
children | e103b75a96ce |
files | markup/eval.py markup/tests/eval.py |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/markup/eval.py +++ b/markup/eval.py @@ -270,6 +270,11 @@ for template expressions. """ + def visitConst(self, node, locals_=False): + if isinstance(node.value, str): + return ast.Const(node.value.decode('utf-8')) + return node + def visitGetattr(self, node, locals_=False): return ast.CallFunc(ast.Name('_lookup_attr'), [ ast.Name('data'), self.visit(node.expr, locals_=locals_),
--- a/markup/tests/eval.py +++ b/markup/tests/eval.py @@ -33,6 +33,8 @@ self.assertEqual(u'þ', expr.evaluate({})) expr = Expression("u'\xfe'") self.assertEqual(u'þ', expr.evaluate({})) + expr = Expression("'\xc3\xbe'") + self.assertEqual(u'þ', expr.evaluate({})) def test_num_literal(self): self.assertEqual(42, Expression("42").evaluate({}))