More user friendly error message when repository key file is not found

Closes #236
This commit is contained in:
Jonas Borgström 2015-04-19 23:09:10 +02:00
parent af9f1c24c4
commit b61ba51c0d
2 changed files with 7 additions and 1 deletions

View file

@ -7,6 +7,7 @@ Version 0.16
------------
(bugfix release, released on X)
- More user friendly error message when repository key file is not found (#236)
- Fix parsing of iso 8601 timestamps with zero microseconds (#282)
Version 0.15

View file

@ -17,6 +17,11 @@ class UnsupportedPayloadError(Error):
"""Unsupported payload type {}. A newer version is required to access this repository.
"""
class KeyfileNotFoundError(Error):
"""No key file for repository {} found in {}.
"""
class HMAC(hmac.HMAC):
"""Workaround a bug in Python < 3.4 Where HMAC does not accept memoryviews
"""
@ -221,7 +226,7 @@ class KeyfileKey(AESKeyBase):
line = fd.readline().strip()
if line and line.startswith(cls.FILE_ID) and line[10:] == id:
return filename
raise Exception('Key file for repository with ID %s not found' % id)
raise KeyfileNotFoundError(repository._location.canonical_path(), get_keys_dir())
def load(self, filename, passphrase):
with open(filename, 'r') as fd: