class StoreError(RuntimeError): | |
pass | |
class CredentialsNotFound(StoreError): | |
pass | |
class InitializationError(StoreError): | |
pass | |
def process_store_error(cpe, program): | |
message = cpe.output.decode('utf-8') | |
if 'credentials not found in native keychain' in message: | |
return CredentialsNotFound( | |
'No matching credentials in {}'.format( | |
program | |
) | |
) | |
return StoreError( | |
'Credentials store {} exited with "{}".'.format( | |
program, cpe.output.decode('utf-8').strip() | |
) | |
) |