1.1 --- a/viewer.py Thu Feb 22 22:06:10 2007 +0100
1.2 +++ b/viewer.py Fri Feb 23 00:12:44 2007 +0100
1.3 @@ -91,7 +91,8 @@
1.4 .operator,
1.5 .iterator,
1.6 .call,
1.7 - .returns
1.8 + .returns,
1.9 + .failure
1.10 {
1.11 position: relative;
1.12 }
1.13 @@ -103,7 +104,8 @@
1.14 .operator:hover > .popup,
1.15 .iterator:hover > .popup,
1.16 .call:hover > .popup,
1.17 - .returns:hover > .popup
1.18 + .returns:hover > .popup,
1.19 + .failure:hover > .popup
1.20 {
1.21 display: block;
1.22 }
1.23 @@ -124,15 +126,15 @@
1.24 """
1.25 A browsing visitor for AST nodes.
1.26
1.27 - Covered: Add, And, AssAttr, AssList, AssName, AssTuple, Assign, AugAssign,
1.28 - Break, CallFunc, Class, Compare, Const, Continue, Dict, Discard,
1.29 - Div, FloorDiv, For, From, Function, Getattr, Global, If, Import,
1.30 - Keyword, Lambda, List, ListComp, ListCompFor, ListCompIf, Mod,
1.31 - Module, Mul, Name, Not, Or, Pass, Power, Print, Printnl, Raise,
1.32 - Return, Slice, Sliceobj, Stmt, Sub, Subscript, TryExcept,
1.33 + Covered: Add, And, Assert, AssAttr, AssList, AssName, AssTuple, Assign,
1.34 + AugAssign, Break, CallFunc, Class, Compare, Const, Continue, Dict,
1.35 + Discard, Div, FloorDiv, For, From, Function, Getattr, Global, If,
1.36 + Import, Keyword, Lambda, List, ListComp, ListCompFor, ListCompIf,
1.37 + Mod, Module, Mul, Name, Not, Or, Pass, Power, Print, Printnl,
1.38 + Raise, Return, Slice, Sliceobj, Stmt, Sub, Subscript, TryExcept,
1.39 TryFinally, Tuple, UnaryAdd, UnarySub, While.
1.40
1.41 - Missing: Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Ellipsis,
1.42 + Missing: Backquote, Bitand, Bitor, Bitxor, Decorators, Ellipsis,
1.43 Exec, Invert, LeftShift, RightShift, Yield.
1.44 """
1.45
1.46 @@ -151,6 +153,20 @@
1.47
1.48 # Statements.
1.49
1.50 + def visitAssert(self, node):
1.51 + self.stream.write("<div class='assert'>\n")
1.52 + self.stream.write("<span class='failure'>\n")
1.53 + self._keyword("assert")
1.54 + self._popup(
1.55 + self._types(node._raises.active())
1.56 + )
1.57 + self.stream.write("</span>\n")
1.58 + self.dispatch(node.test)
1.59 + if node.fail:
1.60 + self.stream.write(", ")
1.61 + self.dispatch(node.fail)
1.62 + self.stream.write("</div>\n")
1.63 +
1.64 def visitAssign(self, node):
1.65 self.stream.write("<div class='assign'>\n")
1.66 for lvalue in node.nodes: