diff options
| author | LV-426 <lv-426@taproot.org.il> | 2014-10-27 12:33:02 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2014-10-27 12:33:02 +0200 |
| commit | 6629438b2f1a9d54d152281342d4d7e0641b7254 (patch) | |
| tree | d795318cba1dd3a35fc0ff0b307c56703ca4a9f3 /src-py | |
| parent | 9b89717dfc286af0127108b221630f9c1d054971 (diff) | |
support node removals in DBO_topo_diff_commit
Diffstat (limited to 'src-py')
| -rw-r--r-- | src-py/db_controller.py | 18 | ||||
| -rw-r--r-- | src-py/test_db_controller.py | 27 |
2 files changed, 33 insertions, 12 deletions
diff --git a/src-py/db_controller.py b/src-py/db_controller.py index c73a6882..aa1e8450 100644 --- a/src-py/db_controller.py +++ b/src-py/db_controller.py @@ -124,22 +124,30 @@ class DBO_topo_diff_commit(DB_composed_op): # TODO rm link set # TODO rm node set - assert 0 == len(topo_diff.node_set_rm), 'unsupported' assert 0 == len(topo_diff.link_set_rm), 'unsupported' 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) + l_rm_set = [] + n_rm_set = topo_diff.node_set_rm # # [!] order critical # if len(n_add_map) > 0: - op_n_add = DBO_add_node_set(n_add_map) - self.add_sub_op(op_n_add) + op = DBO_add_node_set(n_add_map) + self.add_sub_op(op) if len(l_add_map) > 0: - op_l_add = DBO_add_link_set(l_add_map) - self.add_sub_op(op_l_add) + op = DBO_add_link_set(l_add_map) + self.add_sub_op(op) + + if len(l_rm_set) > 0: + pass + + if len(n_rm_set) > 0: + op = DBO_rm_node_set(n_rm_set) + self.add_sub_op(op) class DBO_attr_diff_commit(DB_op): """ diff --git a/src-py/test_db_controller.py b/src-py/test_db_controller.py index 4b17ad3c..002777d7 100644 --- a/src-py/test_db_controller.py +++ b/src-py/test_db_controller.py @@ -200,12 +200,13 @@ class TestDBController(unittest.TestCase): n_0_id = rand_id() n_1_id = rand_id() n_2_id = rand_id() + n_T = 'T_test_topo_diff_commit' - n_set = [{'__type': 'T_test_topo_diff_commit', 'id': n_0_id }, - {'__type': 'T_test_topo_diff_commit', 'id': n_1_id }, - {'__type': 'T_test_topo_diff_commit', 'id': n_2_id }] - l_set = [{'__type': 'T_test_topo_diff_commit', '__src': n_0_id, '__dst': n_1_id}, - {'__type': 'T_test_topo_diff_commit', '__src': n_1_id, '__dst': n_0_id}] + n_set = [{'__type': n_T, 'id': n_0_id }, + {'__type': n_T, 'id': n_1_id }, + {'__type': n_T, 'id': n_2_id }] + l_set = [{'__type': n_T, '__src': n_0_id, '__dst': n_1_id}, + {'__type': n_T, '__src': n_1_id, '__dst': n_0_id}] topo_diff = Topo_Diff(node_set_add=n_set, link_set_add=l_set) @@ -218,11 +219,23 @@ class TestDBController(unittest.TestCase): id_set = self.db_ctl.exec_op(dbc.DBO_match_node_set_by_id_attribute([n_0_id, n_1_id])) self.assertEqual(len(id_set), 2) - id_set = self.db_ctl.exec_op(dbc.DBO_load_link_set_by_src_or_dst_id_attributes(src_id=n_0_id, dst_id=n_1_id)) + + l_ptr = Link.link_ptr(src_id=n_0_id, dst_id=n_1_id) + id_set = self.db_ctl.exec_op(dbc.DBO_load_link_set.init_from_link_ptr(l_ptr)) self.assertEqual(len(id_set), 1) - id_set = self.db_ctl.exec_op(dbc.DBO_load_link_set_by_src_or_dst_id_attributes(src_id=n_1_id, dst_id=n_0_id)) + + l_ptr = Link.link_ptr(src_id=n_1_id, dst_id=n_0_id) + id_set = self.db_ctl.exec_op(dbc.DBO_load_link_set.init_from_link_ptr(l_ptr)) self.assertEqual(len(id_set), 1) + id_set_rm=[n_2_id] + topo_diff = Topo_Diff(node_set_rm=id_set_rm) + op = dbc.DBO_topo_diff_commit(topo_diff) + self.db_ctl.exec_op(op) + op = dbc.DBO_match_node_set_by_id_attribute(id_set_rm) + id_set = self.db_ctl.exec_op(op) + self.assertEqual(len(id_set), 0) + def test_attr_diff_commit(self): # create test node n_id = rand_id() |
