#!/usr/bin/env python
import time
import stat
import unittest
from bloggerfs import *
class TestUtils(unittest.TestCase):
def test_getType(self):
obj = object()
self.assertEqual(stat.S_IFREG, getType(obj))
d = DirNode(None)
self.assertEqual(stat.S_IFDIR, getType(d))
def test_dirEntry(self):
de1 = DirEntry('test', type=stat.S_IFDIR)
de2 = DirEntry('test2', type=stat.S_IFDIR)
self.failIfEqual(de1, de2)
de2.name = 'test'
self.assertEqual(de1, de2)
class TestGenericUpdatedPublished(unittest.TestCase):
def test_publishedNoAttribute(self):
t1 = IUpdated(Node(None)).updated
t2 = int(time.time())
self.assertEqual(t1, t2)
def test_publishedAttribute(self):
t1 = int(time.time())
node = Node(None)
node._published = t1
self.assertEqual(IPublished(node).published, t1)
def test_updatedNoAttribute(self):
t1 = IUpdated(Node(None)).updated
t2 = int(time.time())
self.assertEqual(t1, t2)
def test_updatedAttribute(self):
t1 = int(time.time())
node = Node(None)
node._updated = t1
self.assertEqual(IUpdated(node).updated, t1)
class TestFileNode(unittest.TestCase):
def setUp(self):
self.node = FileNode('test')
def test_getattr(self):
st = self.node.getattr([])
self.assertEqual(st.st_mode, stat.S_IFREG | 0440)
self.assertEqual(st.st_size, 4)
def test_read(self):
self.assertEqual(self.node.read([], 1024, 0), 'test')
self.assertEqual(self.node.read([], 3, 0), 'tes')
def test_adaptation(self):
node = INode('test')
self.assert_(isinstance(node, FileNode))
self.node = node
self.test_read()
self.test_getattr()
class TestDirNode(unittest.TestCase):
def setUp(self):
self.node = DirNode(None)
self.ln = ListNode(['a', ['b', 'c']])
def test_readdir1(self):
dir1 = list(self.node.readdir([], 0))
self.assertEqual(len(dir1), 2)
dir2 = [DirEntry('.', type=stat.S_IFDIR),
DirEntry('..', type=stat.S_IFDIR)]
self.assertEqual(dir1, dir2)
def test_readdir2(self):
c = DirEntry('.', type=stat.S_IFDIR)
p = DirEntry('..', type=stat.S_IFDIR)
d = DirEntry('0', type=stat.S_IFREG)
f = DirEntry('1', type=stat.S_IFDIR)
dir1 = list(self.ln.readdir([], 0))
self.assertEqual(len(dir1), 4)
dir2 = [c, p, f, d]
self.assertEqual(dir1, dir2)
def test_getattr(self):
st = self.node.getattr([])
self.assertEqual(st.st_mode, stat.S_IFDIR | 0550)
if __name__ == '__main__':
unittest.main()
|