From e6ec2ffbad0164b04005e3ca1014c6752a088c27 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 17 Mar 2016 19:37:02 +0200 Subject: Add get_checksum_algorithm_key --- obnamlib/__init__.py | 1 + obnamlib/checksummer.py | 7 +++++++ obnamlib/checksummer_tests.py | 14 ++++++++++++-- 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') -- cgit v1.2.1