2 from twisted.trial.unittest import TestCase
4 from allmydata.web.common import get_filenode_metadata, SDMF_VERSION, MDMF_VERSION
7 class MockFileNode(object):
8 def __init__(self, size, mutable_version=None):
10 self.mutable_version = mutable_version
16 return self.mutable_version is not None
18 def get_version(self):
19 if self.mutable_version is None:
20 raise AttributeError()
21 return self.mutable_version
24 class CommonFixture(object):
25 def test_size_is_0(self):
26 """If get_size doesn't return None the returned metadata must contain "size"."""
27 mockfilenode = MockFileNode(0, mutable_version=self.mutable_version)
28 metadata = get_filenode_metadata(mockfilenode)
29 self.failUnlessEqual(metadata['size'], 0)
31 def test_size_is_1000(self):
32 """1000 is sufficiently large to guarantee the cap is not a literal."""
33 mockfilenode = MockFileNode(1000, mutable_version=self.mutable_version)
34 metadata = get_filenode_metadata(mockfilenode)
35 self.failUnlessEqual(metadata['size'], 1000)
37 def test_size_is_None(self):
38 """If get_size returns None the returned metadata must not contain "size"."""
39 mockfilenode = MockFileNode(None, mutable_version=self.mutable_version)
40 metadata = get_filenode_metadata(mockfilenode)
41 self.failIfIn('size', metadata)
44 class Test_GetFileNodeMetaData_Immutable(CommonFixture, TestCase):
46 self.mutable_version = None
49 class Test_GetFileNodeMetaData_SDMF(CommonFixture, TestCase):
51 self.mutable_version = SDMF_VERSION
54 class Test_GetFileNodeMetaData_MDMF(CommonFixture, TestCase):
56 self.mutable_version = MDMF_VERSION