def test_retrieve_key_value_secret(self, mocked_boto_client): def mocked_response(*args, **kwargs): return { "SecretString": '{"Key":"top-secret-value"}', } task = AWSSecretsManager(secret="test") mocked_boto_client.get_secret_value.side_effect = mocked_response returned_data = task.run() expected_response = json.loads(mocked_response()["SecretString"]) assert returned_data == expected_response
def test_retrieve_plaintext_secret(self, mocked_boto_client): secret_value = "top-secret-string" def mocked_response(*args, **kwargs): return { "SecretString": f"{secret_value}", } task = AWSSecretsManager(secret="test") mocked_boto_client.get_secret_value.side_effect = mocked_response returned_data = task.run() assert returned_data == secret_value
def test_raises_if_secret_not_eventually_provided(self): task = AWSSecretsManager() with pytest.raises(ValueError, match="secret"): task.run()
def test_initialization_passes_to_task_constructor(self): task = AWSSecretsManager(name="test", tags=["AWS"]) assert task.name == "test" assert task.tags == {"AWS"}
def test_initialization(self): task = AWSSecretsManager("test")
) as flow: hello_task = say_hello(person=name) random = RandomTask( name='Random', max_retries=3, retry_delay=timedelta(seconds=1), ) random_1 = random(threshold=threshold) random_2 = random(threshold=threshold) random_3 = random(threshold=threshold) random_x = random.map(threshold=[random_1, random_2, random_3]) secret_task = AWSSecretsManager( secret='prefect/dummy', boto_kwargs={ 'use_session': True, 'profile_name': 'MyProfileName', 'region_name': 'us-east-1' } ) spy_task = print_secret(secret_task) bye_task = say_bye(person=name) # Task Lineage hello_task.set_upstream(spy_task) random_1.set_upstream(hello_task) bye_task.set_upstream(random_x) for t in flow.tasks: if log_on_retry not in t.state_handlers: t.state_handlers.append(log_on_retry)