Beispiel #1
0
 def render(self) -> Node[NODE_DATA]:
     getter = property_getter.render()
     matcher_tree = matcher.render()
     details = list(getter.details)
     details += [tree.TreeDetail(c) for c in getter.children]
     details.append(tree.TreeDetail(matcher_tree))
     return Node(
         getter.header,
         None,
         details,
         (),
     )
Beispiel #2
0
    def test_attributes(self):
        # ARRANGE #

        tree = sut.Node('header', 'data', (), ())
        detail = sut.TreeDetail(tree)

        # ACT & ASSERT #

        self.assertIs(tree,
                      detail.tree)
Beispiel #3
0
 def render(self) -> Node[NODE_DATA]:
     getter = property_getter.render()
     matcher = matcher_result.trace.render()
     details = _details_list(getter.details)
     details += [
         custom_details.structure_tree_detail(c)
         for c in getter.children
     ]
     details.append(tree.TreeDetail(matcher))
     return Node(
         getter.header,
         matcher_result.value,
         details,
         (),
     )
Beispiel #4
0
    def test_accept_visitor(self):
        # ARRANGE #

        visitor = _VisitorThatRegistersVisitedClassesAndReturnsConstant()

        node = sut.Node('header', 'data', (), ())
        detail = sut.TreeDetail(node)

        # ACT #

        detail.accept(visitor)

        # ASSERT #
        self.assertEqual(visitor.visited_classes,
                         [sut.TreeDetail],
                         'visited classes')
Beispiel #5
0
 def render(self) -> Sequence[Detail]:
     return [tree.TreeDetail(self._tree.render())]
Beispiel #6
0
def structure_tree_detail(structure_tree: tree.Node[Any]) -> tree.Detail:
    return tree.TreeDetail(
        structure_tree, layout__node_wo_data.STRUCTURE_NODE_HEADER_TEXT_STYLE)