changeset 396:7016f404b915 trunk

add visitor for xor operator
author mgood
date Sat, 30 Dec 2006 20:12:48 +0000
parents cab6b0256019
children 31742fe6d47e
files genshi/template/eval.py genshi/template/tests/eval.py
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/template/eval.py
+++ b/genshi/template/eval.py
@@ -289,7 +289,8 @@
     def _visitBoolOp(self, node):
         node.nodes = [self.visit(x) for x in node.nodes]
         return node
-    visitAnd = visitOr = visitBitand = visitBitor = visitAssTuple = _visitBoolOp
+    visitAnd = visitOr = visitBitand = visitBitor = visitBitxor = _visitBoolOp
+    visitAssTuple = _visitBoolOp
 
     def _visitBinOp(self, node):
         node.left = self.visit(node.left)
--- a/genshi/template/tests/eval.py
+++ b/genshi/template/tests/eval.py
@@ -133,6 +133,10 @@
         self.assertEqual(1, Expression("1 | 0").evaluate({}))
         self.assertEqual(1, Expression("x | y").evaluate({'x': 1, 'y': 0}))
 
+    def test_binop_xor(self):
+        self.assertEqual(1, Expression("1 ^ 0").evaluate({}))
+        self.assertEqual(1, Expression("x ^ y").evaluate({'x': 1, 'y': 0}))
+
     def test_binop_contains(self):
         self.assertEqual(True, Expression("1 in (1, 2, 3)").evaluate({}))
         self.assertEqual(True, Expression("x in y").evaluate({'x': 1,
Copyright (C) 2012-2017 Edgewall Software