Mercurial > p > roundup > code
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): |
