An early concrete Storage was something like the (untested) one below,
which might satisfy your need for a faster testing-only storage. This
seems a little better than adding another option to the FileStorage
constructor.
class MemoryStorage (Storage):
def __init__(self):
self.records = {}
self.transaction = None
def load(self, oid):
return records[oid]
def begin(self):
self.transaction = {}
def store(self, oid, record):
self.transaction[oid] = record
def end(self):
self.records.update(self.transaction)
self.transaction = None
def sync(self):
return []
def gen_oid_record(self):
for oid, record in self.records.iteritems():
yield oid, record