summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-03-17 19:37:02 +0200
committerLars Wirzenius <liw@liw.fi>2016-03-17 20:54:19 +0200
commite6ec2ffbad0164b04005e3ca1014c6752a088c27 (patch)
tree5218e7246fa2b96e009cf083ada503e492d333a5
parentaf092738c9ad7f787872f31a50ba99caaf0787ca (diff)
downloadobnam-e6ec2ffbad0164b04005e3ca1014c6752a088c27.tar.gz
Add get_checksum_algorithm_key
-rw-r--r--obnamlib/__init__.py1
-rw-r--r--obnamlib/checksummer.py7
-rw-r--r--obnamlib/checksummer_tests.py14
3 files changed, 20 insertions, 2 deletions
diff --git a/obnamlib/__init__.py b/obnamlib/__init__.py
index e1d58c53..48ebe95e 100644
--- a/obnamlib/__init__.py
+++ b/obnamlib/__init__.py
@@ -161,6 +161,7 @@ from .checksummer import (
checksum_algorithms,
get_checksum_algorithm,
get_checksum_algorithm_name,
+ get_checksum_algorithm_key,
)
from .whole_file_checksummer import WholeFileCheckSummer
diff --git a/obnamlib/checksummer.py b/obnamlib/checksummer.py
index f1c8e62f..c420cf6b 100644
--- a/obnamlib/checksummer.py
+++ b/obnamlib/checksummer.py
@@ -48,6 +48,13 @@ def get_checksum_algorithm_name(wanted_key):
algorithm=obnamlib.repo_key_name(wanted_key))
+def get_checksum_algorithm_key(wanted_name):
+ for name, key, _ in _algorithm_list:
+ if name == wanted_name:
+ return key
+ raise UnknownChecksumAlgorithm(algorithm=wanted_name)
+
+
class UnknownChecksumAlgorithm(obnamlib.ObnamError):
msg = 'Unknown checksum algorithm {algorithm}.'
diff --git a/obnamlib/checksummer_tests.py b/obnamlib/checksummer_tests.py
index a6c345f4..db4832cd 100644
--- a/obnamlib/checksummer_tests.py
+++ b/obnamlib/checksummer_tests.py
@@ -31,16 +31,26 @@ class TestGetChecksummer(unittest.TestCase):
self.assertRaises(
obnamlib.ObnamError, obnamlib.get_checksum_algorithm, 'unknown')
- def test_knows_file_key_for_sha512(self):
+ def test_finds_name_from_file_key_for_sha512(self):
self.assertEqual(
obnamlib.get_checksum_algorithm_name(obnamlib.REPO_FILE_SHA512),
'sha512')
- def test_raises_error_if_algorithm_is_unknown_for_key(self):
+ def test_raises_error_if_algorithm_name_is_unknown_for_key(self):
self.assertRaises(
obnamlib.ObnamError,
obnamlib.get_checksum_algorithm_name, -1)
+ def test_finds_file_key_from_name_for_sha512(self):
+ self.assertEqual(
+ obnamlib.get_checksum_algorithm_key('sha512'),
+ obnamlib.REPO_FILE_SHA512)
+
+ def test_raises_error_if_algorithm_key_is_unknown_for_name(self):
+ self.assertRaises(
+ obnamlib.ObnamError,
+ obnamlib.get_checksum_algorithm_key, 'unknown')
+
def test_returns_working_sha512(self):
summer = obnamlib.get_checksum_algorithm('sha512')
summer.update('hello, world')