Skip to content

Commit 314a961

Browse files
SES: Fix regression caused by Moto changes
See getmoto/moto#9249
1 parent 9031496 commit 314a961

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

localstack-core/localstack/services/ses/provider.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ class SesProvider(SesApi, ServiceLifecycleHook):
183183
#
184184

185185
def on_after_init(self):
186+
self._apply_patches()
187+
186188
# Allow sent emails to be retrieved from the SES emails endpoint
187189
register_ses_api_resource()
188190

@@ -198,6 +200,12 @@ def get_source_from_raw(self, raw_data: str) -> str | None:
198200
return entity.replace("From:", "").strip()
199201
return None
200202

203+
def _apply_patches(self) -> None:
204+
# Suppress Moto's validation of receipt rule actions. These validations use Moto's implementation of S3, Lambda
205+
# and SQS, which fail because these services have been internalised in LocalStack.
206+
# Besides, AWS does not run the same validations as evidenced by our AWS-validated tests.
207+
SESBackend._validate_receipt_rule_actions = lambda *_: None
208+
201209
#
202210
# Implementations for SES operations
203211
#
@@ -519,8 +527,10 @@ def clone_receipt_rule_set(
519527
backend.create_receipt_rule_set(rule_set_name)
520528
original_rule_set = backend.describe_receipt_rule_set(original_rule_set_name)
521529

530+
after = None
522531
for rule in original_rule_set.rules:
523-
backend.create_receipt_rule(rule_set_name, rule)
532+
backend.create_receipt_rule(rule_set_name, rule, after)
533+
after = rule["Name"]
524534

525535
return CloneReceiptRuleSetResponse()
526536

tests/aws/services/ses/test_ses.snapshot.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@
806806
}
807807
},
808808
"tests/aws/services/ses/test_ses.py::TestSES::test_clone_receipt_rule_set": {
809-
"recorded-date": "25-08-2023, 23:05:14",
809+
"recorded-date": "17-09-2025, 11:56:18",
810810
"recorded-content": {
811811
"create-receipt-rule-set": {
812812
"ResponseMetadata": {

tests/aws/services/ses/test_ses.validation.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
"last_validated_date": "2023-08-25T22:04:12+00:00"
44
},
55
"tests/aws/services/ses/test_ses.py::TestSES::test_clone_receipt_rule_set": {
6-
"last_validated_date": "2023-08-25T21:05:14+00:00"
6+
"last_validated_date": "2025-09-17T11:56:18+00:00",
7+
"durations_in_seconds": {
8+
"setup": 1.83,
9+
"call": 2.56,
10+
"teardown": 2.05,
11+
"total": 6.44
12+
}
713
},
814
"tests/aws/services/ses/test_ses.py::TestSES::test_creating_event_destination_without_configuration_set": {
915
"last_validated_date": "2023-08-25T22:04:35+00:00"

0 commit comments

Comments
 (0)