summaryrefslogtreecommitdiff
path: root/src-py
diff options
context:
space:
mode:
Diffstat (limited to 'src-py')
-rw-r--r--src-py/db_controller.py21
-rw-r--r--src-py/test_db_controller.py15
2 files changed, 36 insertions, 0 deletions
diff --git a/src-py/db_controller.py b/src-py/db_controller.py
index 32d5a436..bff3a45b 100644
--- a/src-py/db_controller.py
+++ b/src-py/db_controller.py
@@ -114,6 +114,27 @@ class DBO_add_node_set(DB_op):
log.debug('node-set added: ids: ' + str(id_set))
return id_set
+class DBO_add_link_set(DB_op):
+ def __init__(self, link_map):
+ """
+ @param link_map: is a link-type to link-set map - see model.link
+ """
+ super(DBO_add_link_set, self).__init__()
+ for q, q_params in db_util.gen_query_create_from_link_map(link_map):
+ self.add_statement(q, q_params)
+
+ def on_completion(self, data):
+ super(DBO_add_link_set, self).on_completion(data)
+
+ id_set = []
+ for s_id, s, r_set in self:
+ for row in r_set:
+ # [!] fragile - parse results
+ lid = row
+ id_set.append(lid)
+
+ log.debug('link-set added: ids: ' + str(id_set))
+ return id_set
class DBO_load_node_set_by_DB_id(DB_op):
def __init__(self, id_set):
diff --git a/src-py/test_db_controller.py b/src-py/test_db_controller.py
index 7d96954e..cfa8ee31 100644
--- a/src-py/test_db_controller.py
+++ b/src-py/test_db_controller.py
@@ -52,6 +52,21 @@ class TestDBController(unittest.TestCase):
self.assertNotEqual(None, r)
i = i + 1
+ def test_add_link_set(self):
+ l_map = { 'Knows' : [{'__src': 'person_00', '__dst': 'skill_00'},
+ {'__src': 'person_00', '__dst': 'skill_01'}] }
+ l_set = self.db_ctl.exec_op(dbc.DBO_add_link_set(l_map))
+ self.assertEqual(len(l_set), 2)
+
+ def test_load_node_set_by_type(self):
+ filter_type = 'Person'
+ n_set = self.db_ctl.exec_op(dbc.DBO_load_node_id_set(filter_type=filter_type))
+ self.assertEqual(len(n_set), 2)
+
+ filter_type = 'Nan_Type'
+ n_set = self.db_ctl.exec_op(dbc.DBO_load_node_id_set(filter_type=filter_type))
+ self.assertEqual(len(n_set), 0)
+
def test_load_node_set_by_attribute(self):
filter_map = { 'name': ['Bob', u'Judo'],
'age': [128] }