예제 #1
0
 def test_check_memory_storage(self):
     b = MemoryStorage()
     assert b.new_oid() == p64(1)
     assert b.new_oid() == p64(2)
     assert raises(KeyError, b.load, p64(0))
     record = pack_record(p64(0), 'ok', '')
     b.begin()
     b.store(p64(0), record)
     b.end()
     b.sync()
     b.begin()
     b.store(p64(1), pack_record(p64(1), 'no', ''))
     b.end()
     assert len(list(b.gen_oid_record())) == 2
     assert record == b.load(p64(0))
     records = b.bulk_load([p64(0), p64(1)])
     assert len(list(records)) == 2
     records = b.bulk_load([p64(0), p64(1), p64(2)])
     assert raises(KeyError, list, records)
예제 #2
0
 def test_check_record_pack_unpack(self):
     oid = '0'*8
     data = 'sample'
     reflist = ['1'*8, '2'*8]
     refs = ''.join(reflist)
     result=unpack_record(pack_record(oid, data, refs))
     assert result[0] == oid
     assert result[1] == data
     assert split_oids(result[2]) == reflist
     assert split_oids('') == []
예제 #3
0
 def _check_file_storage(self, storage):
     b = storage
     assert b.new_oid() == p64(1)
     assert b.new_oid() == p64(2)
     try:
         b.load(p64(0))
         assert 0
     except KeyError: pass
     record = pack_record(p64(0), 'ok', '')
     b.store(p64(0), record)
     b.begin()
     b.end()
     b.sync()
     b.begin()
     b.store(p64(1), pack_record(p64(1), 'no', ''))
     b.end()
     assert len(list(b.gen_oid_record())) == 2
     b.pack()
     import schevo.store.file_storage
     if schevo.store.file_storage.RENAME_OPEN_FILE:
         schevo.store.file_storage.RENAME_OPEN_FILE = False
         b.pack()
         c = FileStorage(b.get_filename(), readonly=True)
         try:
             c.pack()
             assert 0
         except IOError: # read-only storage
             pass
     b.close()
     try:
         b.pack()
         assert 0
     except IOError: # storage closed
         pass
     try:
         b.load(0)
         assert 0
     except IOError: # storage closed
         pass