def gen_full_db_op_set(self, test_label): n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) l_0, l_0_id = generate_random_link_dict(test_label, n_0_id, n_1_id) n_set = [n_0, n_1] l_set = [l_0] topo_diff = Topo_Diff(node_set_add=n_set, link_set_add=l_set) attr_diff = Attr_Diff() attr_diff.add_node_attr_write(n_0_id, 'attr_0', 0) test_rzdoc = generate_random_RZDoc(test_label) op_set = [ DBO_rzdoc__clone(), DBO_add_node_set(meta_attr_list_to_meta_attr_map(n_set)), DBO_add_link_set(meta_attr_list_to_meta_attr_map(l_set, meta_attr='__type')), DBO_diff_commit__attr(attr_diff), DBO_diff_commit__topo(topo_diff), DBO_rm_node_set(id_set=[n_0_id]), # block chain DBO_block_chain__init(test_rzdoc), DBO_block_chain__commit(commit_obj=topo_diff.to_json_dict()), # rzdoc DBO_rzdoc__create(test_rzdoc), DBO_rzdoc__delete(test_rzdoc), DBO_rzdoc__list(), DBO_rzdoc__lookup_by_name(test_rzdoc.name), ] return op_set
def gen_full_db_op_set(self, test_label): n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) l_0, l_0_id = generate_random_link_dict(test_label, n_0_id, n_1_id) n_set = [n_0, n_1] l_set = [l_0] topo_diff = Topo_Diff(node_set_add=n_set, link_set_add=l_set) attr_diff = Attr_Diff() attr_diff.add_node_attr_write(n_0_id, 'attr_0', 0) test_rzdoc = generate_random_RZDoc(test_label) op_set = [ DBO_rzdoc__clone(), DBO_add_node_set(meta_attr_list_to_meta_attr_map(n_set)), DBO_add_link_set( meta_attr_list_to_meta_attr_map(l_set, meta_attr='__type')), DBO_diff_commit__attr(attr_diff), DBO_diff_commit__topo(topo_diff), DBO_rm_node_set(id_set=[n_0_id]), # block chain DBO_block_chain__init(test_rzdoc), DBO_block_chain__commit(commit_obj=topo_diff.to_json_dict()), # rzdoc DBO_rzdoc__create(test_rzdoc), DBO_rzdoc__delete(test_rzdoc), DBO_rzdoc__list(), DBO_rzdoc__lookup_by_name(test_rzdoc.name), ] return op_set
def __init__(self, topo_diff): super(DBO_diff_commit__topo, self).__init__() n_add_map = db_util.meta_attr_list_to_meta_attr_map(topo_diff.node_set_add) l_add_map = db_util.meta_attr_list_to_meta_attr_map(topo_diff.link_set_add, meta_attr='__type') l_rm_set = topo_diff.link_id_set_rm n_rm_set = topo_diff.node_id_set_rm self.n_add_map = len(n_add_map) > 0 self.l_add_map = len(l_add_map) > 0 self.l_rm_set = len(l_rm_set) > 0 self.n_rm_set = len(n_rm_set) > 0 # # [!] order critical # if len(n_add_map) > 0: op = DBO_add_node_set(n_add_map) self.add_sub_op(op) if len(l_add_map) > 0: op = DBO_add_link_set(l_add_map) self.add_sub_op(op) if len(l_rm_set) > 0: op = DBO_rm_link_set(l_rm_set) self.add_sub_op(op) if len(n_rm_set) > 0: op = DBO_rm_node_set(n_rm_set) self.add_sub_op(op)
def __init__(self, topo_diff): super(DBO_diff_commit__topo, self).__init__() n_add_map = db_util.meta_attr_list_to_meta_attr_map( topo_diff.node_set_add) l_add_map = db_util.meta_attr_list_to_meta_attr_map( topo_diff.link_set_add, meta_attr='__type') l_rm_set = topo_diff.link_id_set_rm n_rm_set = topo_diff.node_id_set_rm self.n_add_map = len(n_add_map) > 0 self.l_add_map = len(l_add_map) > 0 self.l_rm_set = len(l_rm_set) > 0 self.n_rm_set = len(n_rm_set) > 0 # # [!] order critical # if len(n_add_map) > 0: op = DBO_add_node_set(n_add_map) self.add_sub_op(op) if len(l_add_map) > 0: op = DBO_add_link_set(l_add_map) self.add_sub_op(op) if len(l_rm_set) > 0: op = DBO_rm_link_set(l_rm_set) self.add_sub_op(op) if len(n_rm_set) > 0: op = DBO_rm_node_set(n_rm_set) self.add_sub_op(op)
def test_add_node_set(self): test_label = neo4j_test_util.rand_label() n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) n_map = meta_attr_list_to_meta_attr_map([n_0, n_1]) op = DBO_add_node_set(n_map) self.assertEqual(len(op.statement_set), 1) # assert a single statement is issued ret_id_set = self.db_ctl.exec_op(op) self.assertEqual(len(ret_id_set), 2) self.assertTrue(n_0_id in ret_id_set) self.assertTrue(n_1_id in ret_id_set)
def test_add_node_set(self): test_label = neo4j_test_util.rand_label() n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) n_map = meta_attr_list_to_meta_attr_map([n_0, n_1]) op = DBO_add_node_set(n_map) self.assertEqual(len(op.statement_set), 1) # assert a single statement is issued ret_id_set = self.db_ctl.exec_op(op) self.assertEqual(len(ret_id_set), 2) self.assertTrue(n_0_id in ret_id_set) self.assertTrue(n_1_id in ret_id_set)
def test_add_link_set(self): test_label = neo4j_test_util.rand_label() n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) n_2, n_2_id = generate_random_node_dict(test_label) l_0, l_0_id = generate_random_link_dict(test_label, n_0_id, n_1_id) l_1, l_1_id = generate_random_link_dict(test_label, n_0_id, n_2_id) n_map = meta_attr_list_to_meta_attr_map([n_0, n_1, n_2]) op = DBO_add_node_set(n_map) self.db_ctl.exec_op(op) l_map = { test_label : [l_0, l_1]} op = DBO_add_link_set(l_map) self.assertEqual(len(op.statement_set), 2) # no support yet for parameterized statements for link creation ret_id_set = self.db_ctl.exec_op(op) self.assertEqual(len(ret_id_set), 2) self.assertTrue(l_0_id in ret_id_set) self.assertTrue(l_1_id in ret_id_set)
def test_add_link_set(self): test_label = neo4j_test_util.rand_label() n_0, n_0_id = generate_random_node_dict(test_label) n_1, n_1_id = generate_random_node_dict(test_label) n_2, n_2_id = generate_random_node_dict(test_label) l_0, l_0_id = generate_random_link_dict(test_label, n_0_id, n_1_id) l_1, l_1_id = generate_random_link_dict(test_label, n_0_id, n_2_id) n_map = meta_attr_list_to_meta_attr_map([n_0, n_1, n_2]) op = DBO_add_node_set(n_map) self.db_ctl.exec_op(op) l_map = {test_label: [l_0, l_1]} op = DBO_add_link_set(l_map) self.assertEqual( len(op.statement_set), 2) # no support yet for parameterized statements for link creation ret_id_set = self.db_ctl.exec_op(op) self.assertEqual(len(ret_id_set), 2) self.assertTrue(l_0_id in ret_id_set) self.assertTrue(l_1_id in ret_id_set)