Parcourir la source

Add more functionality to postgresql driver

oz123 il y a 10 ans
Parent
commit
c343d6417e
2 fichiers modifiés avec 17 ajouts et 2 suppressions
  1. 13 0
      pwman/data/drivers/postgresql.py
  2. 4 2
      pwman/tests/test_postgresql.py

+ 13 - 0
pwman/data/drivers/postgresql.py

@@ -94,6 +94,19 @@ class PostgresqlDatabase(Database):
         #self._setnodetags(self._cur.lastrowid, tags)
         self._con.commit()
 
+    def getnodes(self, ids):
+        sql = "SELECT * FROM NODE WHERE ID IN ({})".format(','.join('%s' for
+                                                                    i in ids))
+        self._cur.execute(sql, (ids))
+        nodes = self._cur.fetchall()
+        nodes_w_tags = []
+        for node in nodes:
+            #tags = list(self._get_node_tags(node))
+            tags = []
+            nodes_w_tags.append(list(node) + tags)
+
+        return nodes_w_tags
+
     def removenodes(self, nodes):
         pass
 

+ 4 - 2
pwman/tests/test_postgresql.py

@@ -66,8 +66,10 @@ class TestPostGresql(unittest.TestCase):
         self.assertEqual(row, ('TOP', 'SECRET'))
 
     def test_5_add_node(self):
-        self.db.add_node(("TBONE", "S3K43T", "example.org", "some note"))
-
+        innode = ["TBONE", "S3K43T", "example.org", "some note"]
+        self.db.add_node(innode)
+        outnode = self.db.getnodes([1])[0]
+        self.assertEqual(innode, outnode[1:])
 
 if __name__ == '__main__':