-
Notifications
You must be signed in to change notification settings - Fork 0
/
dedupe_store_test.py
executable file
·58 lines (45 loc) · 2.13 KB
/
dedupe_store_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
import unittest
from dedupe_store import FileHash
class TestFileHashes(unittest.TestCase):
'''Test the file hashes out.'''
# Ensure that the hashing is working as expected
# Values generated from echo <val> | sha256sum on Ubuntu 11.10
def setUp(self):
self.test_sha256_hashes = [
('aaaaa\n', 'bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a'),
('bbbbb\n', '8b410a5102fa5a38ef71e9e7c3f7888a9c029da41cfce2b16fd6f4c062b88030')
]
self.path_break_values = [
('aaaaaaaaaaaaaaaaaaaa', 4, 'aaaa/aaaa/aaaa/aaaa/aaaa'),
('aaaaaaaaaaaaaaaaaa', 4, 'aaaa/aaaa/aaaa/aaaa/aa'),
('a', 4, 'a'),
('aaaaaaaaaaaaaaaaaa', 100, 'aaaaaaaaaaaaaaaaaa'),
('aaaaa', 1, 'a/a/a/a/a'),
('aaaaaaaaaaaaaaaaaa', 10, 'aaaaaaaaaa/aaaaaaaa')
]
def test_hashing_algorithms(self):
file_hash = FileHash()
for test_hash in self.test_sha256_hashes:
self.assertEqual(file_hash.update(test_hash[0]).hash(),
test_hash[1])
def test_direct_assignment(self):
for test_hash in self.test_sha256_hashes:
file_hash = FileHash(test_hash[1])
direct_hash = file_hash.hash()
self.assertEqual(direct_hash, file_hash.update(test_hash[0]).hash())
def test_str_representation(self):
for test_hash in self.test_sha256_hashes:
file_hash = FileHash(test_hash[1])
self.assertEqual(str(file_hash), file_hash.hash())
def test_str_representation(self):
for test_hash in self.test_sha256_hashes:
file_hash = FileHash(test_hash[1])
self.assertEqual(str(file_hash), file_hash.hash())
def test_path_split(self):
for path_test in self.path_break_values:
file_hash = FileHash(path_test[0])
hash_path = file_hash.hash_path(path_break=path_test[1])
self.assertEqual(hash_path, path_test[2])
if __name__ == '__main__':
unittest.main()