def test_duplicated_object(outlines_doc): # Fails on reoccurring element with pytest.raises(OutlineStructureError): with outlines_doc.open_outline(strict=True) as outline: # Copy and object reference from one node to another obj_b_ii = outline.root[0].children[1].children[0].obj outline.root[2].children[0].obj = obj_b_ii # Silently creates a copy of the outline node with outlines_doc.open_outline() as outline: # Append duplicate object reference to existing outline obj_b_ii = outline.root[0].children[1].children[0].obj outline.root[2].children.append( OutlineItem.from_dictionary_object(obj_b_ii)) # Should not fail at this point anymore with outlines_doc.open_outline(strict=True) as outline: assert len(outline.root[2].children) == 3 assert (outline.root[2].children[2].title == outline.root[0].children[1].children[0].title)
def test_outline_destination_name_object_types(): # See issues 258, 261 obj = Dictionary(Title='foo', Dest=Name.Bar) item = OutlineItem.from_dictionary_object(obj) assert '.Root.Dests' in str(item)