8000 Write validated test about deleting already deleted secrets, force de… · localstack/localstack@a9dc04e · GitHub
[go: up one dir, main page]

Skip to content

Commit a9dc04e

Browse files
committed
Write validated test about deleting already deleted secrets, force delete secrets from CFN per default
1 parent 3026d5c commit a9dc04e

File tree

4 files changed

+78
-1
lines changed

4 files changed

+78
-1
lines changed

localstack-core/localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def delete(
204204
model = request.desired_state
205205
secrets_manager = request.aws_client_factory.secretsmanager
206206

207-
secrets_manager.delete_secret(SecretId=model["Name"])
207+
secrets_manager.delete_secret(SecretId=model["Name"], ForceDeleteWithoutRecovery=True)
208208

209209
return ProgressEvent(
210210
status=OperationStatus.SUCCESS,

tests/aws/services/secretsmanager/test_secretsmanager.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2446,6 +2446,32 @@ def test_get_secret_value(
24462446
)
24472447
sm_snapshot.match("secret_value_http_response", json_response)
24482448

2449+
@markers.aws.validated
2450+
def test_force_delete_deleted_secret(self, sm_snapshot, secret_name, aws_client):
2451+
"""Test if a deleted secret can b 10000 e force deleted afterwards."""
2452+
create_secret_response = aws_client.secretsmanager.create_secret(
2453+
Name=secret_name, SecretString=f"secretstr-{short_uid()}"
2454+
)
2455+
sm_snapshot.match("create_secret_response", create_secret_response)
2456+
secret_id = create_secret_response["ARN"]
2457+
2458+
sm_snapshot.add_transformer(
2459+
sm_snapshot.transform.secretsmanager_secret_id_arn(create_secret_response, 0)
2460+
)
2461+
2462+
delete_secret_response = aws_client.secretsmanager.delete_secret(SecretId=secret_id)
2463+
sm_snapshot.match("delete_secret_response", delete_secret_response)
2464+
2465+
describe_secret_response = aws_client.secretsmanager.describe_secret(SecretId=secret_id)
2466+
sm_snapshot.match("describe_secret_response", describe_secret_response)
2467+
2468+
force_delete_secret_response = aws_client.secretsmanager.delete_secret(
2469+
SecretId=secret_id, ForceDeleteWithoutRecovery=True
2470+
)
2471+
sm_snapshot.match("force_delete_secret_response", force_delete_secret_response)
2472+
2473+
self._wait_force_deletion_completed(aws_client.secretsmanager, secret_id)
2474+
24492475

24502476
class TestSecretsManagerMultiAccounts:
24512477
@markers.aws.validated

tests/aws/services/secretsmanager/test_secretsmanager.snapshot.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4538,5 +4538,53 @@
45384538
]
45394539
}
45404540
}
4541+
},
4542+
"tests/aws/services/secretsmanager/test_secretsmanager.py::TestSecretsManager::test_force_delete_deleted_secret": {
4543+
"recorded-date": "11-10-2024, 14:33:45",
4544+
"recorded-content": {
4545+
"create_secret_response": {
4546+
"ARN": "arn:<partition>:secretsmanager:<region>:111111111111:secret:<SecretId-0idx><ArnPart-0idx>",
4547+
"Name": "<SecretId-0idx>",
4548+
"VersionId": "<version_uuid:1>",
4549+
"ResponseMetadata": {
4550+
"HTTPHeaders": {},
4551+
"HTTPStatusCode": 200
4552+
}
4553+
},
4554+
"delete_secret_response": {
4555+
"ARN": "arn:<partition>:secretsmanager:<region>:111111111111:secret:<SecretId-0idx><ArnPart-0idx>",
4556+
"DeletionDate": "datetime",
4557+
"Name": "<SecretId-0idx>",
4558+
"ResponseMetadata": {
4559+
"HTTPHeaders": {},
4560+
"HTTPStatusCode": 200
4561+
}
4562+
},
4563+
"describe_secret_response": {
4564+
"ARN": "arn:<partition>:secretsmanager:<region>:111111111111:secret:<SecretId-0idx><ArnPart-0idx>",
4565+
"CreatedDate": "datetime",
4566+
"DeletedDate": "datetime",
4567+
"LastChangedDate": "datetime",
4568+
"Name": "<SecretId-0idx>",
4569+
"VersionIdsToStages": {
4570+
"<version_uuid:1>": [
4571+
"AWSCURRENT"
4572+
]
4573+
},
4574+
"ResponseMetadata": {
4575+
"HTTPHeaders": {},
4576+
"HTTPStatusCode": 200
4577+
}
4578+
},
4579+
"force_delete_secret_response": {
4580+
"ARN": "arn:<partition>:secretsmanager:<region>:111111111111:secret:<SecretId-0idx><ArnPart-0idx>",
4581+
"DeletionDate": "datetime",
4582+
"Name": "<SecretId-0idx>",
4583+
"ResponseMetadata": {
4584+
"HTTPHeaders": {},
4585+
"HTTPStatusCode": 200
4586+
}
4587+
}
4588+
}
45414589
}
45424590
}

tests/aws/services/secretsmanager/test_secretsmanager.validation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
"tests/aws/services/secretsmanager/test_secretsmanager.py::TestSecretsManager::test_exp_raised_on_creation_of_secret_scheduled_for_deletion": {
4242
"last_validated_date": "2024-03-15T08:13:16+00:00"
4343
},
44+
"tests/aws/services/secretsmanager/test_secretsmanager.py::TestSecretsManager::test_force_delete_deleted_secret": {
45+
"last_validated_date": "2024-10-11T14:33:45+00:00"
46+
},
4447
"tests/aws/services/secretsmanager/test_secretsmanager.py::TestSecretsManager::test_get_random_exclude_characters_and_symbols": {
4548
"last_validated_date": "2024-03-15T08:12:01+00:00"
4649
},

0 commit comments

Comments
 (0)
0