def test_forge(self): # user-pass secret = Secret.forge( Secret.TYPE_USER_PASS, username="******", password="******" ) self.assertDictEqual(secret, { 'username': "******", 'password': "******" }) # token secret = Secret.forge( Secret.TYPE_TOKEN, token="0xDEADBEEF" ) self.assertDictEqual(secret, {'token': "0xDEADBEEF"}) # key-secret secret = Secret.forge( Secret.TYPE_KEY_SECRET, key="abc12377x", secret="frog blast the vent core" ) self.assertDictEqual(secret, { 'key': "abc12377x", 'secret': "frog blast the vent core" })
def xform_secret_data(value, **kwargs): record = kwargs.get('record', {}) old_data = value.split(':', 2) new_data = Secret.TEMPLATES[record['type']].copy() if record['type'] == Secret.TYPE_USER_PASS: new_data['username'] = old_data[0] new_data['password'] = old_data[1] elif record['type'] == Secret.TYPE_TOKEN: new_data['token'] = old_data[1] if old_data[1] else old_data[0] elif record['type'] == Secret.TYPE_KEY_SECRET: new_data['key'] = old_data[0] new_data['secret'] = old_data[1] return Secret.forge(record['type'], **new_data)
def test_forge_missing_args(self): with self.assertRaisesRegex(ValueError, "Missing Required Value: 'username'"): Secret.forge( Secret.TYPE_USER_PASS, password="******" )
def test_forge_invalid_type(self): with self.assertRaisesRegex(TypeError, "Invalid Secret Type: 'base64-encoded-string'"): Secret.forge('base64-encoded-string', string="deciduous manifestations")