oz123 10 anni fa
parent
commit
33cd6ea578
2 ha cambiato i file con 28 aggiunte e 8 eliminazioni
  1. 23 1
      pwman/data/drivers/mongodb.py
  2. 5 7
      tests/test_mongodb.py

+ 23 - 1
pwman/data/drivers/mongodb.py

@@ -47,13 +47,35 @@ class MongoDB(Database):
         return nodeid['seq']
 
     def getnodes(self, ids):
-        pass
+
+        node_dicts = self._db.nodes.find({'_id': {'$in': ids}})
+        nodes = []
+        for node in node_dicts:
+            n = [node['_id'],
+                 node['username'],
+                 node['password'],
+                 node['url'],
+                 node['notes']]
+
+            [n.append(t) for t in node['tags']]
+            nodes.append(n)
+
+        return nodes
 
     def listnodes(self, filter=None):
         pass
 
     def add_node(self, node):
         nid = self._get_next_node_id()
+        node = {
+            '_id': nid,
+            'username': node[0],
+            'password': node[1],
+            'url': node[2],
+            'notes': node[3],
+            'tags': node[4]
+            }
+        self._db.nodes.insert(node)
         return nid
 
     def listtags(self):

+ 5 - 7
tests/test_mongodb.py

@@ -74,13 +74,11 @@ class TestMongoDB(unittest.TestCase):
         self.assertEqual(row, ('TOP', 'SECRET'))
 
     def test_5_add_node(self):
-        innode = ["TBONE", "S3K43T", "example.org", "some note",
-                  ["bartag", "footag"]]
-        nid = self.db.add_node(innode)
-        self.assertEquals(1, nid)
-
-        # outnode = self.db.getnodes([1])[0]
-        # self.assertEqual(innode[:-1] + [t for t in innode[-1]], outnode[1:])
+        innode = [u"TBONE", u"S3K43T", u"example.org", u"some note",
+                  [u"bartag", u"footag"]]
+        self.db.add_node(innode)
+        outnode = self.db.getnodes([1])[0]
+        self.assertEqual(innode[:-1] + [t for t in innode[-1]], outnode[1:])
 
     @unittest.skip("")
     def test_6_list_nodes(self):