def test_get_secret_string_refresh(self):
     secret = 'mysecret'
     response = {}
     versions = {'01234567890123456789012345678901': ['AWSCURRENT']}
     version_response = {'SecretString': secret}
     cache = SecretCache(
         config=SecretCacheConfig(secret_refresh_interval=1),
         client=self.get_client(response, versions, version_response))
     for _ in range(10):
         self.assertEqual(secret, cache.get_secret_string('test'))
コード例 #2
0
    def test_calls_hook_binary(self):
        secret = b'01010101'
        hooked_secret = secret + b'1111111100000000'
        response = {}
        versions = {
            '01234567890123456789012345678901': ['AWSCURRENT']
        }
        version_response = {'SecretBinary': secret}

        hook = DummySecretCacheHook()
        config = SecretCacheConfig(secret_cache_hook=hook)

        cache = SecretCache(config=config, client=self.get_client(response,
                                                                  versions,
                                                                  version_response))

        for _ in range(10):
            self.assertEqual(hooked_secret, cache.get_secret_binary('test')[0:24])
コード例 #3
0
    def test_calls_hook_string(self):
        secret = 'mysecret'
        hooked_secret = secret + "+hook_put+hook_get"
        response = {}
        versions = {
            '01234567890123456789012345678901': ['AWSCURRENT']
        }
        version_response = {'SecretString': secret}

        hook = DummySecretCacheHook()
        config = SecretCacheConfig(secret_cache_hook=hook)

        cache = SecretCache(config=config, client=self.get_client(response,
                                                                  versions,
                                                                  version_response))

        for _ in range(10):
            fetched_secret = cache.get_secret_string('test')
            self.assertTrue(fetched_secret.startswith(hooked_secret))
コード例 #4
0
    def test_get_secret_string_refresh(self, client, secret_string):
        cache = SecretCache(
            config=SecretCacheConfig(secret_refresh_interval=1), client=client)
        secret = client.get_secret_value(
            SecretId=secret_string['ARN'])['SecretString']

        for _ in range(10):
            assert cache.get_secret_string("{0}{1}{2}".format(
                TestAwsSecretsManagerCachingInteg.fixture_prefix,
                inspect.stack()[0][3],
                TestAwsSecretsManagerCachingInteg.uuid_suffix)) == secret

        client.put_secret_value(SecretId=secret_string['ARN'],
                                SecretString='test2',
                                VersionStages=['AWSCURRENT'])

        time.sleep(2)
        secret = client.get_secret_value(
            SecretId=secret_string['ARN'])['SecretString']
        for _ in range(10):
            assert cache.get_secret_string("{0}{1}{2}".format(
                TestAwsSecretsManagerCachingInteg.fixture_prefix,
                inspect.stack()[0][3],
                TestAwsSecretsManagerCachingInteg.uuid_suffix)) == secret
コード例 #5
0
 def test_simple_2(self):
     sco = TestSecretCacheObject.TestObject(SecretCacheConfig(), None, None)
     self.assertIsNone(sco.get_secret_value())
     sco._exception = Exception("test")
     self.assertRaises(Exception, sco.get_secret_value)
コード例 #6
0
 def test_simple(self):
     sco = TestSecretCacheObject.TestObject(SecretCacheConfig(), None, None)
     self.assertIsNone(sco.get_secret_value())
コード例 #7
0
 def test_config_default_version_stage(self):
     stage = 'nothing'
     config = SecretCacheConfig(default_version_stage=stage)
     self.assertEqual(config.default_version_stage, stage)