def test_empty_neighbors(self): nodelist = _NodeListRoot() assert nodelist.prev_neighbor is None assert nodelist.next_neighbor is None assert nodelist._next_node is nodelist assert nodelist._prev_node is nodelist
def test_neighbors(self): nodelist = _NodeListRoot() node1 = GenericNode('node1') node2 = GenericNode('node2') nodelist.insert(node1) nodelist.insert(node2) assert nodelist.prev_neighbor is node2 assert nodelist._prev_node is node2 assert nodelist.next_neighbor is node1 assert nodelist._next_node is node1
def test_misspecified_neighbors(self): nodelist = _NodeListRoot() node1 = GenericNode('node1') node2 = GenericNode('node2') node3 = GenericNode('node3') toinsert = GenericNode('toinsert') nodelist.insert(node1) nodelist.insert(node2) nodelist.insert(node3) with pytest.raises(exceptions.ListIntegrityError): nodelist.insert(toinsert, after=node1, before=node3)
def test_insert_remove(self): nodelist1 = _NodeListRoot() nodelist2 = _NodeListRoot() node_before = GenericNode('node_before') node1 = GenericNode('node1') node_after = GenericNode('node_after') nodelist1.insert(node_before) nodelist1.insert(node1) nodelist1.insert(node_after) assert nodelist1._next_node is node_before assert node_before._prev_node is nodelist1 assert node_before._next_node is node1 assert node1._prev_node is node_before assert node1._next_node is node_after assert node_after._prev_node is node1 assert node_after._next_node is nodelist1 assert nodelist1._prev_node is node_after nodelist1.remove(node1) assert nodelist1._next_node is node_before assert node_before._prev_node is nodelist1 assert node_before._next_node is node_after assert node_after._prev_node is node_before assert node_after._next_node is nodelist1 assert nodelist1._prev_node is node_after nodelist2.insert(node1) assert nodelist2._next_node is node1 assert node1._prev_node is nodelist2 assert node1._next_node is nodelist2 assert nodelist2._prev_node is node1
def test_iteration(self): nodelist = _NodeListRoot() node1 = GenericNode('node1') node2 = GenericNode('node2') node3 = GenericNode('node3') nodelist.insert(node1) nodelist.insert(node2) nodelist.insert(node3) forward = [node1, node2, node3] reverse = [node3, node2, node1] for found, expected in izip_longest(nodelist, forward): assert found is expected for found, expected in izip_longest(reversed(nodelist), reverse): assert found is expected
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)