コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
    def test_raises_if_secret_not_eventually_provided(self):
        task = AWSSecretsManager()

        with pytest.raises(ValueError, match="secret"):
            task.run()
コード例 #4
0
 def test_initialization_passes_to_task_constructor(self):
     task = AWSSecretsManager(name="test", tags=["AWS"])
     assert task.name == "test"
     assert task.tags == {"AWS"}
コード例 #5
0
 def test_initialization(self):
     task = AWSSecretsManager("test")
コード例 #6
0
) 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)