From: Brian Warner Date: Wed, 18 Apr 2007 03:03:44 +0000 (-0700) Subject: test_storage: add (failing) test of the BucketWriter/BucketReader implementation X-Git-Tag: tahoe_v0.1.0-0-UNSTABLE~81 X-Git-Url: https://git.rkrishnan.org/module-simplejson.tests.html?a=commitdiff_plain;h=e040b85f5da5830ca87c63208cb1ba64b09097ef;p=tahoe-lafs%2Ftahoe-lafs.git test_storage: add (failing) test of the BucketWriter/BucketReader implementation --- diff --git a/src/allmydata/test/test_storage.py b/src/allmydata/test/test_storage.py new file mode 100644 index 00000000..39d1bd14 --- /dev/null +++ b/src/allmydata/test/test_storage.py @@ -0,0 +1,43 @@ + +from twisted.trial import unittest + +import os.path +from allmydata import storageserver +from allmydata.util import fileutil + +class Storage(unittest.TestCase): + def make_workdir(self, name): + tmpdir = os.path.join("test_storage", "Storage", "tmp", name) + basedir = os.path.join("test_storage", "Storage", name) + fileutil.make_dirs(tmpdir) + fileutil.make_dirs(basedir) + return tmpdir, basedir + + def test_create(self): + tmpdir, basedir = self.make_workdir("test_create") + bw = storageserver.BucketWriter(tmpdir, basedir, 25) + bw.remote_put_block(0, "a"*25) + bw.remote_put_block(1, "b"*25) + bw.remote_put_block(2, "c"*7) # last block may be short + bw.remote_close() + + def test_readwrite(self): + tmpdir, basedir = self.make_workdir("test_readwrite") + bw = storageserver.BucketWriter(tmpdir, basedir, 25) + bw.remote_put_block(0, "a"*25) + bw.remote_put_block(1, "b"*25) + bw.remote_put_block(2, "c"*7) # last block may be short + bw.remote_put_block_hashes(["1"*32, "2"*32, "3"*32, "4"*32]) + bw.remote_put_share_hashes([(5, "5"*32), (6, "6"*32)]) + bw.remote_close() + + # now read from it + br = storageserver.BucketReader(basedir) + self.failUnlessEqual(br.remote_get_block(0), "a"*25) + self.failUnlessEqual(br.remote_get_block(1), "b"*25) + self.failUnlessEqual(br.remote_get_block(2), "c"*7) + self.failUnlessEqual(br.remote_get_block_hashes(), + ["1"*32, "2"*32, "3"*32, "4"*32]) + self.failUnlessEqual(br.remote_get_share_hashes(), + [(5, "5"*32), (6, "6"*32)]) +