예제 #1
0
    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"
        })
예제 #2
0
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)
예제 #3
0
 def test_forge_missing_args(self):
     with self.assertRaisesRegex(ValueError, "Missing Required Value: 'username'"):
         Secret.forge(
             Secret.TYPE_USER_PASS,
             password="******"
         )
예제 #4
0
 def test_forge_invalid_type(self):
     with self.assertRaisesRegex(TypeError, "Invalid Secret Type: 'base64-encoded-string'"):
         Secret.forge('base64-encoded-string', string="deciduous manifestations")