diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-03-17 19:37:02 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-03-17 20:54:19 +0200 |
commit | e6ec2ffbad0164b04005e3ca1014c6752a088c27 (patch) | |
tree | 5218e7246fa2b96e009cf083ada503e492d333a5 | |
parent | af092738c9ad7f787872f31a50ba99caaf0787ca (diff) | |
download | obnam-e6ec2ffbad0164b04005e3ca1014c6752a088c27.tar.gz |
Add get_checksum_algorithm_key
-rw-r--r-- | obnamlib/__init__.py | 1 | ||||
-rw-r--r-- | obnamlib/checksummer.py | 7 | ||||
-rw-r--r-- | 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') |