From d324a77445ccd291c37bdffc9918f93d103e37e3 Mon Sep 17 00:00:00 2001 From: Daniel Roschka Date: Tue, 8 Mar 2022 11:17:28 +0100 Subject: [PATCH] Fix deleting secrets by ARN (#4918) --- moto/secretsmanager/models.py | 4 ++++ .../test_secretsmanager.py | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/moto/secretsmanager/models.py b/moto/secretsmanager/models.py index ff220a83f..81cdb4e6b 100644 --- a/moto/secretsmanager/models.py +++ b/moto/secretsmanager/models.py @@ -180,6 +180,10 @@ class SecretsStore(dict): new_key = get_secret_name_from_arn(key) return dict.__contains__(self, new_key) + def get(self, key, *args, **kwargs): + new_key = get_secret_name_from_arn(key) + return super().get(new_key, *args, **kwargs) + def pop(self, key, *args, **kwargs): new_key = get_secret_name_from_arn(key) return super().pop(new_key, *args, **kwargs) diff --git a/tests/test_secretsmanager/test_secretsmanager.py b/tests/test_secretsmanager/test_secretsmanager.py index d5c675fb7..81a0714a2 100644 --- a/tests/test_secretsmanager/test_secretsmanager.py +++ b/tests/test_secretsmanager/test_secretsmanager.py @@ -226,6 +226,25 @@ def test_delete_secret(): assert secret_details["DeletedDate"] > datetime.fromtimestamp(1, pytz.utc) +@mock_secretsmanager +def test_delete_secret_by_arn(): + conn = boto3.client("secretsmanager", region_name="us-west-2") + + secret = conn.create_secret(Name="test-secret", SecretString="foosecret") + + deleted_secret = conn.delete_secret(SecretId=secret["ARN"]) + + assert deleted_secret["ARN"] == secret["ARN"] + assert deleted_secret["Name"] == "test-secret" + assert deleted_secret["DeletionDate"] > datetime.fromtimestamp(1, pytz.utc) + + secret_details = conn.describe_secret(SecretId="test-secret") + + assert secret_details["ARN"] == secret["ARN"] + assert secret_details["Name"] == "test-secret" + assert secret_details["DeletedDate"] > datetime.fromtimestamp(1, pytz.utc) + + @mock_secretsmanager def test_delete_secret_force(): conn = boto3.client("secretsmanager", region_name="us-west-2")