diff roundup/backends/sessions_dbm.py @ 4383:0d9369d35483

fix up some pre-Python2.6 compatibility issues in the *dbm interface
author Richard Jones <richard@users.sourceforge.net>
date Sat, 10 Jul 2010 03:45:17 +0000
parents 6cbe57d7f15c
children 8d135c19523e
line wrap: on
line diff
--- a/roundup/backends/sessions_dbm.py	Thu Jul 01 02:20:51 2010 +0000
+++ b/roundup/backends/sessions_dbm.py	Sat Jul 10 03:45:17 2010 +0000
@@ -11,7 +11,7 @@
 
 from roundup import hyperdb
 from roundup.i18n import _
-from roundup.anypy.dbm_ import anydbm, whichdb
+from roundup.anypy.dbm_ import anydbm, whichdb, key_in
 
 class BasicDatabase:
     ''' Provide a nice encapsulation of an anydbm store.
@@ -28,7 +28,7 @@
     def exists(self, infoid):
         db = self.opendb('c')
         try:
-            return infoid in db
+            return key_in(db, infoid)
         finally:
             db.close()
 
@@ -60,7 +60,7 @@
     def get(self, infoid, value, default=_marker):
         db = self.opendb('c')
         try:
-            if infoid in db:
+            if key_in(db, infoid):
                 values = marshal.loads(db[infoid])
             else:
                 if default != self._marker:
@@ -85,7 +85,7 @@
     def set(self, infoid, **newvalues):
         db = self.opendb('c')
         try:
-            if infoid in db:
+            if key_in(db, infoid):
                 values = marshal.loads(db[infoid])
             else:
                 values = {'__timestamp': time.time()}
@@ -104,7 +104,7 @@
     def destroy(self, infoid):
         db = self.opendb('c')
         try:
-            if infoid in db:
+            if key_in(db, infoid):
                 del db[infoid]
         finally:
             db.close()

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