diff options
-rw-r--r-- | obnamlib/checksummer_tests.py | 13 | ||||
-rw-r--r-- | obnamlib/whole_file_checksummer.py | 6 | ||||
-rw-r--r-- | obnamlib/whole_file_checksummer_tests.py | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/obnamlib/checksummer_tests.py b/obnamlib/checksummer_tests.py index db4832cd..9f5c647b 100644 --- a/obnamlib/checksummer_tests.py +++ b/obnamlib/checksummer_tests.py @@ -63,6 +63,13 @@ class TestGetChecksummer(unittest.TestCase): for name in obnamlib.checksum_algorithms: summer = obnamlib.get_checksum_algorithm(name) summer.update('hello, world') - checksum = summer.hexdigest() - self.assertEqual(type(checksum), str) - self.assertNotEqual(checksum, '') + + digest = summer.hexdigest() + self.assertEqual(type(digest), str) + self.assertNotEqual(digest, '') + + hexdigest = summer.hexdigest() + self.assertEqual(type(hexdigest), str) + self.assertNotEqual(hexdigest, '') + for c in hexdigest: + self.assertTrue(c in '0123456789abcdef') diff --git a/obnamlib/whole_file_checksummer.py b/obnamlib/whole_file_checksummer.py index d47850f7..78c6d06b 100644 --- a/obnamlib/whole_file_checksummer.py +++ b/obnamlib/whole_file_checksummer.py @@ -35,6 +35,7 @@ class WholeFileCheckSummer(object): def __init__(self, file_key): self._all_bytes = file_key == obnamlib.REPO_FILE_MD5 + self._use_hex = file_key != obnamlib.REPO_FILE_MD5 self._summer = self._create_checksum_algorithm(file_key) def _create_checksum_algorithm(self, file_key): @@ -52,7 +53,10 @@ class WholeFileCheckSummer(object): def get_checksum(self): '''Get the current whole-file checksum.''' - return self._summer.hexdigest() + if self._use_hex: + return self._summer.hexdigest() + else: + return self._summer.digest() class _NullChecksum(object): diff --git a/obnamlib/whole_file_checksummer_tests.py b/obnamlib/whole_file_checksummer_tests.py index 473831b9..c11da206 100644 --- a/obnamlib/whole_file_checksummer_tests.py +++ b/obnamlib/whole_file_checksummer_tests.py @@ -36,7 +36,7 @@ class WholeFileCheckSummerTests(unittest.TestCase): chunk_id = None summer.append_chunk(chunk, chunk_id) self.assertEqual( - summer.get_checksum(), + summer.get_checksum().encode('hex'), '5d41402abc4b2a76b9719d911017c592') def test_computes_checksum_for_sha512(self): |