Changeset View
Changeset View
Standalone View
Standalone View
bin/test/test_EmergeHash.py
- This file was added.
1 | import os | ||||
---|---|---|---|---|---|
2 | import sys | ||||
3 | import unittest | ||||
4 | import random | ||||
5 | import tempfile | ||||
6 | import contextlib | ||||
7 | import io | ||||
8 | | ||||
9 | import EmergeHash | ||||
10 | import EmergeDebug | ||||
11 | import EmergeTestBase | ||||
12 | | ||||
13 | class EmergeHashTest(EmergeTestBase.EmergeTestBase): | ||||
14 | | ||||
15 | def setUp(self): | ||||
16 | super().setUp() | ||||
17 | random.seed(42) | ||||
18 | data = "" | ||||
19 | for i in range(0, 1000): | ||||
20 | data += str(random.random()) | ||||
21 | self.tmpFile = tempfile.NamedTemporaryFile("wt+", delete=False) | ||||
22 | self.tmpFile.write(data) | ||||
23 | self.tmpFile.close() | ||||
24 | | ||||
25 | | ||||
26 | def tearDown(self): | ||||
27 | del self.tmpFile | ||||
28 | super().tearDown() | ||||
29 | | ||||
30 | | ||||
31 | def hashTest(self, hash, algorithm): | ||||
32 | path, name = os.path.split(self.tmpFile.name) | ||||
33 | self.assertEquals(EmergeHash.checkFilesDigests(path, [name], hash, algorithm), True) | ||||
34 | | ||||
35 | | ||||
36 | class TestAPI(EmergeHashTest): | ||||
37 | | ||||
38 | def test_MD5(self): | ||||
39 | self.hashTest("953700da7dfea74714b08f8a7cf69151", EmergeHash.HashAlgorithm.MD5) | ||||
40 | | ||||
41 | def test_SHA1(self): | ||||
42 | self.hashTest("25f0187fc5e189518dc489bcc97daa93973d7d1e", EmergeHash.HashAlgorithm.SHA1) | ||||
43 | | ||||
44 | def test_SHA224(self): | ||||
45 | self.hashTest("deef4b9f1cf9e7bdfa34ba05521740a7fdf3e1570b704a3d4088cec2", EmergeHash.HashAlgorithm.SHA224) | ||||
46 | | ||||
47 | def test_SHA256(self): | ||||
48 | self.hashTest("4fc1e96dc5ecf625efe228fce1b0964b6302cfa4d4fb2bb8d16c665d23f6ff30", EmergeHash.HashAlgorithm.SHA256) | ||||
49 | | ||||
50 | def test_SHA512(self): | ||||
51 | self.hashTest( | ||||
52 | "70f8f3087b51217d16e860915a06a5208eb51fb2264c10815d395feb834f63cc28fb9abed6c681b7475fbfb3dcd1afc713b16789ea951d27ab34e8d637cc27f4", | ||||
53 | EmergeHash.HashAlgorithm.SHA512) | ||||
54 | | ||||
55 | def test_printFilesDigests(self): | ||||
56 | path, name = os.path.split(self.tmpFile.name) | ||||
57 | log = io.StringIO() | ||||
58 | with contextlib.redirect_stdout(log): | ||||
59 | EmergeHash.printFilesDigests(path, [name], "test", EmergeHash.HashAlgorithm.SHA256) | ||||
60 | self.assertEquals("self.targetDigests['test'] = (['4fc1e96dc5ecf625efe228fce1b0964b6302cfa4d4fb2bb8d16c665d23f6ff30'], EmergeHash.HashAlgorithm.SHA256)\n", | ||||
61 | log.getvalue()) | ||||
62 | No newline at end of file |