Example #1
0
    def test_insert_errors(self):
        nodelist = _NodeListRoot()

        node1 = GenericNode('node1')
        node2 = GenericNode('node2')
        loosenode = GenericNode('loosenode')

        nodelist.insert(node1)
        oldnext = node1._next_node
        node1._next_node = loosenode

        with pytest.raises(exceptions.ListIntegrityError):
            nodelist.insert(node2)

        node1._next_node = oldnext
        node1._prev_node = loosenode

        with pytest.raises(exceptions.ListIntegrityError):
            nodelist.insert(node2, after=nodelist)
Example #2
0
    def test_save_basic(self, tmpdir):
        tracker = Tracker(nodecreator=FakeNodeCreator(),
                skeleton=False)

        node1 = GenericNode("node1", "\u2665node1_text", tracker.root)
        tracker.root.addchild(node1)
        node2 = GenericNode("node2", "\u2665node2_text", tracker.root)
        tracker.root.addchild(node2)
        node3 = GenericNode("node3", None, tracker.root)
        tracker.root.addchild(node3)

        node1_1 = GenericNode("node1_1", "\u2665node1_1_text", node1)
        node1_1.setoption("herp", "\u2665derp")
        node1.addchild(node1_1)

        node1_2 = GenericNode("node1_2", "\u2665node1_2_text", node1)
        node1_2.continue_text("\u2665herk derk")
        node1.addchild(node1_2)

        node2_1 = GenericNode("node2_1", "\u2665node2_1_text", node2)
        node2_1.setoption("hark", "\u2665dark")
        node2_1.continue_text('\u2665honk donk')
        node2.addchild(node2_1)

        f = tmpdir.join("life")
        tracker.save(str(tmpdir))
        assert match(f.read("rb"), (
            "node1#?????: \u2665node1_text\n"
            "    node1_1#?????: \u2665node1_1_text\n"
            "        @herp: \u2665derp\n"
            "    node1_2#?????: \u2665node1_2_text\n"
            "        - \u2665herk derk\n"
            "node2#?????: \u2665node2_text\n"
            "    node2_1#?????: \u2665node2_1_text\n"
            "        - \u2665honk donk\n"
            "        @hark: \u2665dark\n"
            "node3#?????\n"
        ).encode("utf-8"))