summaryrefslogtreecommitdiff
path: root/summainlib_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'summainlib_tests.py')
-rw-r--r--summainlib_tests.py129
1 files changed, 67 insertions, 62 deletions
diff --git a/summainlib_tests.py b/summainlib_tests.py
index e2a3c0f..d982aae 100644
--- a/summainlib_tests.py
+++ b/summainlib_tests.py
@@ -24,7 +24,7 @@ class FakeChecksummer(object):
def update(self, data):
pass
-
+
def hexdigest(self):
return 'abc'
@@ -39,13 +39,13 @@ class FakeOpenFile(object):
data = self.data[:amount]
self.data = self.data[len(data):]
return data
-
+
def close(self):
pass
def __enter__(self):
return self
-
+
def __exit__(self, a, b, c):
pass
@@ -67,16 +67,16 @@ class FilesystemObjectTests(unittest.TestCase):
def setUp(self):
self.st = {
- summainlib.RESULT_MTIME_SEC: 1262307723,
- summainlib.RESULT_MTIME_NSEC: 123456789,
- summainlib.RESULT_MODE: stat.S_IFREG | 0644,
- summainlib.RESULT_INO: 12765,
- summainlib.RESULT_DEV: 42,
- summainlib.RESULT_NLINK: 2,
- summainlib.RESULT_SIZE: 1,
- summainlib.RESULT_UID: 0,
- summainlib.RESULT_GID: 0
- }
+ summainlib.RESULT_MTIME_SEC: 1262307723,
+ summainlib.RESULT_MTIME_NSEC: 123456789,
+ summainlib.RESULT_MODE: stat.S_IFREG | 0644,
+ summainlib.RESULT_INO: 12765,
+ summainlib.RESULT_DEV: 42,
+ summainlib.RESULT_NLINK: 2,
+ summainlib.RESULT_SIZE: 1,
+ summainlib.RESULT_UID: 0,
+ summainlib.RESULT_GID: 0
+ }
self.nn = summainlib.NumberNormalizer()
self.pn = summainlib.SamePath()
@@ -85,31 +85,34 @@ class FilesystemObjectTests(unittest.TestCase):
def new(self, name, mode=None):
if mode is not None:
self.st[summainlib.RESULT_MODE] = mode
- return summainlib.FilesystemObject(name, self.nn, self.pn,
- self.exclude,
- stat_result=self.st,
- sha1=FakeChecksummer(),
- sha224=FakeChecksummer(),
- sha256=FakeChecksummer(),
- sha384=FakeChecksummer(),
- sha512=FakeChecksummer(),
- md5=FakeChecksummer(),
- open_file=FakeOpenFile(),
- readlink=FakeReadlink(self),
- xattrs={})
+ return summainlib.FilesystemObject(
+ name,
+ self.nn,
+ self.pn,
+ self.exclude,
+ stat_result=self.st,
+ sha1=FakeChecksummer(),
+ sha224=FakeChecksummer(),
+ sha256=FakeChecksummer(),
+ sha384=FakeChecksummer(),
+ sha512=FakeChecksummer(),
+ md5=FakeChecksummer(),
+ open_file=FakeOpenFile(),
+ readlink=FakeReadlink(self),
+ xattrs={})
def test_raises_keyerror_for_unknown_field(self):
self.assertRaises(KeyError, self.new('foo').__getitem__,
'UNKNOWNHASH')
-
+
def test_formats_simple_name_identically(self):
self.assertEqual(self.new('foo')['Name'], 'foo')
-
+
def test_formats_space_correctly(self):
self.assertEqual(self.new('foo bar')['Name'], 'foo%20bar')
-
+
def test_formats_mtime_correctly(self):
- self.assertEqual(self.new('foo')['Mtime'],
+ self.assertEqual(self.new('foo')['Mtime'],
'2010-01-01 01:02:03.123456789 +0000')
def test_formats_mode_for_regular_file_correctly(self):
@@ -180,36 +183,39 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase):
self.pn = summainlib.SamePath()
self.exclude = []
self.checksums = ['SHA1']
-
+
def reset(self):
self.dev += 1
self.nn.reset()
def new(self, name):
st = {
- summainlib.RESULT_INO: self.ino,
- summainlib.RESULT_DEV: self.dev,
- summainlib.RESULT_MTIME_SEC: 0,
- summainlib.RESULT_MTIME_NSEC: 0,
- summainlib.RESULT_MODE: stat.S_IFREG|0,
- summainlib.RESULT_NLINK: 1,
- summainlib.RESULT_SIZE: 0,
- summainlib.RESULT_UID: 0,
- summainlib.RESULT_GID: 0
- }
+ summainlib.RESULT_INO: self.ino,
+ summainlib.RESULT_DEV: self.dev,
+ summainlib.RESULT_MTIME_SEC: 0,
+ summainlib.RESULT_MTIME_NSEC: 0,
+ summainlib.RESULT_MODE: stat.S_IFREG | 0,
+ summainlib.RESULT_NLINK: 1,
+ summainlib.RESULT_SIZE: 0,
+ summainlib.RESULT_UID: 0,
+ summainlib.RESULT_GID: 0
+ }
self.ino += 1
- return summainlib.FilesystemObject(name, self.nn, self.pn,
- self.exclude,
- stat_result=st,
- sha1=FakeChecksummer(),
- sha224=FakeChecksummer(),
- sha256=FakeChecksummer(),
- sha384=FakeChecksummer(),
- sha512=FakeChecksummer(),
- md5=FakeChecksummer(),
- open_file=FakeOpenFile(),
- readlink=FakeReadlink(self),
- xattrs={})
+ return summainlib.FilesystemObject(
+ name,
+ self.nn,
+ self.pn,
+ self.exclude,
+ stat_result=st,
+ sha1=FakeChecksummer(),
+ sha224=FakeChecksummer(),
+ sha256=FakeChecksummer(),
+ sha384=FakeChecksummer(),
+ sha512=FakeChecksummer(),
+ md5=FakeChecksummer(),
+ open_file=FakeOpenFile(),
+ readlink=FakeReadlink(self),
+ xattrs={})
def test_inode_numbers_are_repeatable(self):
a1 = self.new('foo')
@@ -226,32 +232,31 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase):
self.assertEqual(a1['Ino'], b1['Ino'])
self.assertEqual(a2['Dev'], b2['Dev'])
self.assertEqual(a2['Ino'], b2['Ino'])
-
-
+
+
class NumberNormalizerTests(unittest.TestCase):
def setUp(self):
self.nn = summainlib.NumberNormalizer()
-
+
def test_returns_1_2_3_regardless_of_input_numbers(self):
self.assertEqual([self.nn.get_ino(i) for i in [10, 11, 12]],
[1, 2, 3])
-
+
def test_returns_1_1_1_when_input_number_is_repeated(self):
self.assertEqual([self.nn.get_ino(i) for i in [10, 10, 10]],
[1, 1, 1])
-
-
+
+
class PathNormalizerTests(unittest.TestCase):
def setUp(self):
self.pn = summainlib.PathNormalizer('secret')
-
+
def test_returns_different_paths_for_different_inputs(self):
- self.assertNotEqual(self.pn.normalize('/foo/bar'),
+ self.assertNotEqual(self.pn.normalize('/foo/bar'),
self.pn.normalize('/ping/pong'))
-
+
def test_returns_same_paths_for_same_input(self):
self.assertEqual(self.pn.normalize('/foo/bar'),
self.pn.normalize('/foo/bar'))
-