Remove trailing whitespaces
[pysize.git] / tests / tests / fs_node.py
blob3588517e86ed0b728a98ff2260f36a0ee0cf75ff
1 import unittest
2 from pysize.core import pysize_fs_node
3 from pysize.core.pysize_global_fs_cache import drop_caches
5 def checksum(node):
6 checksum = 0
7 for n in node:
8 checksum += n.compute_height()
9 checksum += n.compute_depth()
10 checksum += n.minimum_real_size()
11 checksum += len(n.get_dirname())
12 checksum += n.is_dir() and 1 or 2
13 checksum += n.is_real() and 3 or 5
14 checksum += len(n.get_fullname())
15 checksum += len(",".join(n.get_fullpaths()))
16 checksum += len(n.get_name())
17 return checksum
19 class TestFsNode(unittest.TestCase):
20 def testTree(self):
21 drop_caches()
22 node = pysize_fs_node.create_node(None, '/tmp/pysize_example_dir', 10,
23 10000)
24 self.assertEqual(node.get_fullname(), '/tmp/pysize_example_dir')
25 self.assertEqual(node.compute_height(), 5)
26 self.assertEqual(node.compute_depth(), 1)
27 self.assertEqual(node.minimum_real_size(), 12288)
28 self.assertEqual(node.get_dirname(), '/tmp')
29 self.assert_(node.is_dir())
30 self.assertEqual(checksum(node), 5139172)
31 child = node.children[0]
32 self.assertEqual(child.get_fullname(),
33 '/tmp/pysize_example_dir/bad_dirname$)\x0c\x02\xb5AUg\xdf\xda')
34 self.assertEqual(child.get_name(),
35 'bad_dirname$)\x0c\x02\xb5AUg\xdf\xda/')
38 def testForest(self):
39 drop_caches()
40 paths = ['/tmp/pysize_example_dir/dir_symlink/hardlinks/0/%d' % i for i
41 in xrange(10)]
42 node = pysize_fs_node.create_node(None, paths, 10, 1000)
43 self.assertEqual(node.get_fullname(),
44 '/tmp/pysize_example_dir/dir_symlink/hardlinks/0/{0,1,2,3,4,5,6,7,8,9}')
45 self.assertEqual(node.compute_height(), 3)
46 self.assertEqual(node.compute_depth(), 1)
47 self.assertEqual(node.minimum_real_size(), 4096)
48 self.assertEqual(node.get_dirname(),
49 '/tmp/pysize_example_dir/dir_symlink/hardlinks/0')
50 self.failIf(node.is_dir())
51 self.assertEqual(checksum(node), 502156)
52 child = node.children[0]
53 self.assertEqual(child.get_fullname(),
54 '/tmp/pysize_example_dir/dir_symlink/hardlinks/0/0')
55 self.assertEqual(child.get_name(), '0/')
57 def testFile(self):
58 drop_caches()
59 node = pysize_fs_node.create_node(None,
60 ['/tmp/pysize_example_dir/unreadable_file'], 10, 10000)
61 self.assertEqual(node.get_name(),
62 '/tmp/pysize_example_dir/unreadable_file')
63 self.assertEqual(checksum(node), 12434)
65 def testInit(self):
66 drop_caches()
67 node = pysize_fs_node.create_node(None, None, None, None)
68 self.assertEqual(node.get_fullname(), '')
70 TESTS = (TestFsNode,)