SIGN IN SIGN UP

Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.

0 0 1 Java
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Unit tests for alias_management.py.
"""
import boto3
import pytest
from botocore.exceptions import ClientError
import alias_management
@pytest.mark.parametrize(
"error_code, stop_on_action",
[
(None, None),
("TestException", "stub_create_key"),
("TestException", "stub_create_alias"),
("TestException", "stub_list_aliases"),
("TestException", "stub_update_alias"),
("TestException", "stub_delete_alias"),
("TestException", "stub_schedule_key_deletion"),
],
)
def test_alias_management(
make_stubber, stub_runner, monkeypatch, error_code, stop_on_action
):
kms_client = boto3.client("kms")
kms_stubber = make_stubber(kms_client)
key_id = "test-key-id"
key_id_2 = "test-key-id-2"
alias = "test-alias"
inputs = ["y", "test-alias", "y", "y", key_id_2, "test-alias", "y"]
monkeypatch.setattr("builtins.input", lambda x: inputs.pop(0))
with stub_runner(error_code, stop_on_action) as runner:
runner.add(kms_stubber.stub_create_key, "Alias management demo key", key_id)
runner.add(kms_stubber.stub_create_alias, alias, key_id)
if stop_on_action == "stub_create_alias":
inputs.insert(2, "test-alias")
runner.add(kms_stubber.stub_create_alias, alias, key_id, keep_going=True)
runner.add(
kms_stubber.stub_list_aliases,
10,
[alias] * 10,
truncated=True,
keep_going=True,
)
runner.add(
kms_stubber.stub_list_aliases,
10,
[alias] * 10,
marker="test-token",
)
runner.add(
kms_stubber.stub_update_alias, alias, key_id_2, raise_and_continue=True
)
runner.add(kms_stubber.stub_delete_alias, alias)
runner.add(kms_stubber.stub_schedule_key_deletion, key_id, 7)
exception_raising_functions = [
"stub_create_key",
"stub_create_alias",
"stub_list_aliases",
"stub_delete_alias",
]
if stop_on_action not in exception_raising_functions:
alias_management.alias_management(kms_client)
else:
with pytest.raises(ClientError):
alias_management.alias_management(kms_client)