diff test/memorydb.py @ 4347:0e33bf5571dc

make some more memorydb tests pass
author Richard Jones <richard@users.sourceforge.net>
date Fri, 05 Feb 2010 05:10:52 +0000
parents 4dc575b33712
children f0faef4dd023
line wrap: on
line diff
--- a/test/memorydb.py	Fri Feb 05 04:10:06 2010 +0000
+++ b/test/memorydb.py	Fri Feb 05 05:10:52 2010 +0000
@@ -183,6 +183,9 @@
         shutil.copyfile(__file__, __file__+'.dummy')
         return __file__+'.dummy'
 
+    def filesize(self, classname, nodeid, property=None, create=0):
+        return len(self.getnode(classname, nodeid)[property or 'content'])
+
     def post_init(self):
         pass
 
@@ -269,6 +272,8 @@
     def newid(self, classname):
         self.ids[classname] += 1
         return str(self.ids[classname])
+    def setid(self, classname, id):
+        self.ids[classname] = id
 
     #
     # Nodes
@@ -282,7 +287,10 @@
     def getnode(self, classname, nodeid, db=None):
         if db is not None:
             return db[nodeid]
-        return self.getclassdb(classname)[nodeid]
+        d = self.getclassdb(classname)
+        if nodeid not in d:
+            raise IndexError(nodeid)
+        return d[nodeid]
 
     def destroynode(self, classname, nodeid):
         del self.getclassdb(classname)[nodeid]
@@ -328,7 +336,10 @@
 
 class Class(back_anydbm.Class):
     def getnodeids(self, db=None, retired=None):
-        return self.db.getclassdb(self.classname).keys()
+        d = self.db.getclassdb(self.classname)
+        if retired is None:
+            return d.keys()
+        return [k for k in d if d[k].get(self.db.RETIRED_FLAG, False) == retired]
 
 class FileClass(back_anydbm.Class):
     def __init__(self, db, classname, **properties):

Roundup Issue Tracker: http://roundup-tracker.org/