Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def test_next_visitor(visitor):
- Visitor = visitor.make_visitor()
- @Visitor.mark
- class Test1:
- pass
- @Visitor.mark
- class Test2(Test1):
- pass
- class Visitor1(Visitor):
- pass
- class Visitor2(Visitor1):
- pass
- @Visitor2.bind(Test2)
- def Visitor2(self, node, next_visitor):
- return 'a' + next_visitor('f')
- @Visitor1.bind(Test2)
- def Visitor1(self, node, next_visitor):
- return 'b' + next_visitor('f')
- @Visitor2.bind(Test1)
- def Visitor2(self, node, next_visitor):
- return 'c' + next_visitor('f')
- @Visitor1.bind(Test1)
- def Visitor1(self, node, next_visitor):
- return 'd' + next_visitor('e')
- assert Visitor2().visit(Test2()) == 'abcde'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement