def build_key_from_dict(kClass, kdict): """ Build an C{kClass} key based on info in C{kdict}. :param kdict: Dictionary with key data. :type kdict: dict :return: An instance of the key. :rtype: C{kClass} """ try: validation = ValidationLevels.get(kdict[KEY_VALIDATION_KEY]) except ValueError: logger.error("Not valid validation level (%s) for key %s", (kdict[KEY_VALIDATION_KEY], kdict[KEY_ID_KEY])) validation = ValidationLevels.Weak_Chain expiry_date = _to_datetime(kdict[KEY_EXPIRY_DATE_KEY]) last_audited_at = _to_datetime(kdict[KEY_LAST_AUDITED_AT_KEY]) refreshed_at = _to_datetime(kdict[KEY_REFRESHED_AT_KEY]) return kClass( kdict[KEY_ADDRESS_KEY], key_id=kdict[KEY_ID_KEY], fingerprint=kdict[KEY_FINGERPRINT_KEY], key_data=kdict[KEY_DATA_KEY], private=kdict[KEY_PRIVATE_KEY], length=kdict[KEY_LENGTH_KEY], expiry_date=expiry_date, last_audited_at=last_audited_at, refreshed_at=refreshed_at, validation=validation, encr_used=kdict[KEY_ENCR_USED_KEY], sign_used=kdict[KEY_SIGN_USED_KEY], )
def test_build_key_from_dict(self): kdict = { 'address': [ADDRESS], 'key_id': KEY_FINGERPRINT[-16:], 'fingerprint': KEY_FINGERPRINT, 'key_data': PUBLIC_KEY, 'private': False, 'length': 4096, 'expiry_date': 0, 'last_audited_at': 0, 'refreshed_at': 1311239602, 'validation': str(ValidationLevels.Weak_Chain), 'encr_used': False, 'sign_used': True, } key = build_key_from_dict(OpenPGPKey, kdict) self.assertEqual(kdict['address'], key.address, 'Wrong data in key.') self.assertEqual(kdict['key_id'], key.key_id, 'Wrong data in key.') self.assertEqual(kdict['fingerprint'], key.fingerprint, 'Wrong data in key.') self.assertEqual(kdict['key_data'], key.key_data, 'Wrong data in key.') self.assertEqual(kdict['private'], key.private, 'Wrong data in key.') self.assertEqual(kdict['length'], key.length, 'Wrong data in key.') self.assertEqual(None, key.expiry_date, 'Wrong data in key.') self.assertEqual(None, key.last_audited_at, 'Wrong data in key.') self.assertEqual(datetime.fromtimestamp(kdict['refreshed_at']), key.refreshed_at, 'Wrong data in key.') self.assertEqual(ValidationLevels.get(kdict['validation']), key.validation, 'Wrong data in key.') self.assertEqual(kdict['encr_used'], key.encr_used, 'Wrong data in key.') self.assertEqual(kdict['sign_used'], key.sign_used, 'Wrong data in key.')
def test_build_key_from_dict(self): kdict = { 'uids': [ADDRESS], 'fingerprint': KEY_FINGERPRINT, 'key_data': PUBLIC_KEY, 'private': False, 'length': 4096, 'expiry_date': 0, 'refreshed_at': 1311239602, } adict = { 'address': ADDRESS, 'private': False, 'last_audited_at': 0, 'validation': str(ValidationLevels.Weak_Chain), 'encr_used': False, 'sign_used': True, } key = build_key_from_dict(OpenPGPKey, kdict, adict) self.assertEqual( kdict['uids'], key.uids, 'Wrong data in key.') self.assertEqual( kdict['fingerprint'], key.fingerprint, 'Wrong data in key.') self.assertEqual( kdict['key_data'], key.key_data, 'Wrong data in key.') self.assertEqual( kdict['private'], key.private, 'Wrong data in key.') self.assertEqual( kdict['length'], key.length, 'Wrong data in key.') self.assertEqual( None, key.expiry_date, 'Wrong data in key.') self.assertEqual( None, key.last_audited_at, 'Wrong data in key.') self.assertEqual( datetime.fromtimestamp(kdict['refreshed_at']), key.refreshed_at, 'Wrong data in key.') self.assertEqual( adict['address'], key.address, 'Wrong data in key.') self.assertEqual( ValidationLevels.get(adict['validation']), key.validation, 'Wrong data in key.') self.assertEqual( adict['encr_used'], key.encr_used, 'Wrong data in key.') self.assertEqual( adict['sign_used'], key.sign_used, 'Wrong data in key.')