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'))
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])
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))
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
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)
def test_simple(self): sco = TestSecretCacheObject.TestObject(SecretCacheConfig(), None, None) self.assertIsNone(sco.get_secret_value())
def test_config_default_version_stage(self): stage = 'nothing' config = SecretCacheConfig(default_version_stage=stage) self.assertEqual(config.default_version_stage, stage)