comparison test/memorydb.py @ 5462:d0fd8bb64c3f

fixed memorydb string encoding
author Christof Meerwald <cmeerw@cmeerw.org>
date Tue, 24 Jul 2018 22:41:39 +0100
parents 23b8e6067f7c
children c4f9a152258d
comparison
equal deleted inserted replaced
5461:ad8031290639 5462:d0fd8bb64c3f
13 from roundup.backends import back_anydbm 13 from roundup.backends import back_anydbm
14 from roundup.backends import indexer_dbm 14 from roundup.backends import indexer_dbm
15 from roundup.backends import sessions_dbm 15 from roundup.backends import sessions_dbm
16 from roundup.backends import indexer_common 16 from roundup.backends import indexer_common
17 from roundup.support import ensureParentsExist 17 from roundup.support import ensureParentsExist
18 from roundup.anypy.strings import s2b
18 19
19 def new_config(debug=False): 20 def new_config(debug=False):
20 config = configuration.CoreConfig() 21 config = configuration.CoreConfig()
21 config.DATABASE = "db" 22 config.DATABASE = "db"
22 #config.logging = MockNull() 23 #config.logging = MockNull()
108 db.security.addPermissionToRole('User', 'View', cl) 109 db.security.addPermissionToRole('User', 'View', cl)
109 ''' 110 '''
110 return db 111 return db
111 112
112 class cldb(dict): 113 class cldb(dict):
114 def __init__(self, **values):
115 super(cldb, self).__init__()
116 for key, value in values.items():
117 super(cldb, self).__setitem__(s2b(key), value)
118 def __getitem__(self, key):
119 return super(cldb, self).__getitem__(s2b(key))
120 def __setitem__(self, key, value):
121 return super(cldb, self).__setitem__(s2b(key), value)
122 def __delitem__(self, key):
123 return super(cldb, self).__delitem__(s2b(key))
124 def __contains__(self, key):
125 return super(cldb, self).__contains__(s2b(key))
113 def close(self): 126 def close(self):
114 pass 127 pass
115 128
116 class BasicDatabase(dict): 129 class BasicDatabase(dict):
117 ''' Provide a nice encapsulation of an anydbm store. 130 ''' Provide a nice encapsulation of an anydbm store.
118 131
119 Keys are id strings, values are automatically marshalled data. 132 Keys are id strings, values are automatically marshalled data.
120 ''' 133 '''
134 def __init__(self, **values):
135 super(BasicDatabase, self).__init__()
136 for k, v in values.items():
137 super(BasicDatabase, self).__setitem__(s2b(k), v)
121 def __getitem__(self, key): 138 def __getitem__(self, key):
122 if key not in self: 139 if key not in self:
123 d = self[key] = {} 140 d = self[key] = {}
124 return d 141 return d
125 return super(BasicDatabase, self).__getitem__(key) 142 return super(BasicDatabase, self).__getitem__(s2b(key))
143 def __setitem__(self, key, value):
144 return super(BasicDatabase, self).__setitem__(s2b(key), value)
145 def __delitem__(self, key):
146 return super(BasicDatabase, self).__delitem__(s2b(key))
147 def __contains__(self, key):
148 return super(BasicDatabase, self).__contains__(s2b(key))
126 def exists(self, infoid): 149 def exists(self, infoid):
127 return infoid in self 150 return infoid in self
128 def get(self, infoid, value, default=None): 151 def get(self, infoid, value, default=None):
129 return self[infoid].get(value, default) 152 return self[infoid].get(value, default)
130 def getall(self, infoid): 153 def getall(self, infoid):

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