1.1 --- a/tests/test_parser.py Tue Jul 17 19:19:59 2018 +0200
1.2 +++ b/tests/test_parser.py Tue Jul 17 19:21:38 2018 +0200
1.3 @@ -57,13 +57,17 @@
1.4 print "-" * 60
1.5 print d.prettyprint()
1.6 if failing:
1.7 - simple, tree = failing
1.8 + print "-" * 60
1.9 + print ts
1.10 + simple, tree, error = failing
1.11 + print "-" * 60
1.12 + print error
1.13 + print repr(simple)
1.14 + print repr(tree)
1.15 print "-" * 60
1.16 print tree.prettyprint()
1.17 print "-" * 60
1.18 print simple.prettyprint()
1.19 - print "-" * 60
1.20 - print ts
1.21 print "-" * 60
1.22 print
1.23
1.24 @@ -78,10 +82,11 @@
1.25 self.nodes = []
1.26
1.27 def __repr__(self):
1.28 - return "Node(%r, ...)" % self.name
1.29 + return "Node(%r, %r)" % (self.name, self.nodes)
1.30
1.31 def prettyprint(self, indent=""):
1.32 - l = [indent + self.name]
1.33 + l = []
1.34 + l.append("%s%s%s" % (indent, self.name, len(self.nodes) and " nodes=%d" % len(self.nodes) or ""))
1.35 for node in self.nodes:
1.36 l.append(node.prettyprint(indent + " "))
1.37 return "\n".join(l)
1.38 @@ -99,14 +104,17 @@
1.39 """
1.40
1.41 if other.__class__.__name__ != self.name:
1.42 - return self, other
1.43 + return self, other, "name"
1.44
1.45 if isinstance(other, Container):
1.46 for node, other_node in map(None, self.nodes, other.nodes):
1.47 if node is None or other_node is None:
1.48 - return self, other
1.49 - if node.test(other_node):
1.50 - return node, other_node
1.51 + return self, other, node is None and "simple" or "document"
1.52 + t = node.test(other_node)
1.53 + if t:
1.54 + return t
1.55 + elif self.nodes:
1.56 + return self, other, "empty"
1.57
1.58 return None
1.59