Skip to content

Commit f6a9780

Browse files
committed
Adding e2e tests for ScalingConfig
1 parent ffbfe9d commit f6a9780

File tree

2 files changed

+69
-4
lines changed

2 files changed

+69
-4
lines changed

apis/v1alpha1/ack-generate-metadata.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ack_generate_info:
2-
build_date: "2023-01-31T23:16:05Z"
3-
build_hash: c3fefc1cc5cb030c5e893027ba1195d747889aca
2+
build_date: "2023-02-01T00:38:06Z"
3+
build_hash: 12246c7da82841b351ec7a9e1f139f9338f2784b
44
go_version: go1.19
55
version: v0.23.0
66
api_directory_checksum: a9fcef68210dd72b4b2e37052f2c1a9e971326c6

test/e2e/tests/test_event_source_mapping.py

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def lambda_function():
4444
replacements["BUCKET_NAME"] = resources.FunctionsBucket.name
4545
replacements["LAMBDA_ROLE"] = resources.ESMRole.arn
4646
replacements["LAMBDA_FILE_NAME"] = LAMBDA_FUNCTION_FILE_ZIP
47-
replacements["RESERVED_CONCURRENT_EXECUTIONS"] = "0"
47+
replacements["RESERVED_CONCURRENT_EXECUTIONS"] = "10"
4848
replacements["CODE_SIGNING_CONFIG_ARN"] = ""
4949
replacements["AWS_REGION"] = get_region()
5050

@@ -319,4 +319,69 @@ def test_smoke_dynamodb_table_stream(self, lambda_client, lambda_function):
319319
time.sleep(DELETE_WAIT_AFTER_SECONDS)
320320

321321
# Check ESM doesn't exist
322-
assert not lambda_validator.event_source_mapping_exists(esm_uuid)
322+
assert not lambda_validator.event_source_mapping_exists(esm_uuid)
323+
324+
def test_scaling_config(self, lambda_client, lambda_function):
325+
326+
(_, function_resource) = lambda_function
327+
lambda_function_name = function_resource["spec"]["name"]
328+
329+
resource_name = random_suffix_name("lambda-esm", 24)
330+
resources = get_bootstrap_resources()
331+
332+
replacements = REPLACEMENT_VALUES.copy()
333+
replacements["AWS_REGION"] = get_region()
334+
replacements["EVENT_SOURCE_MAPPING_NAME"] = resource_name
335+
replacements["BATCH_SIZE"] = "10"
336+
replacements["RESERVED_CONCURRENT_EXECUTIONS"] = "10"
337+
replacements["FUNCTION_NAME"] = lambda_function_name
338+
replacements["EVENT_SOURCE_ARN"] = resources.ESMQueue.arn
339+
replacements["MAXIMUM_BATCHING_WINDOW_IN_SECONDS"] = "1"
340+
341+
# Load ESM CR
342+
resource_data = load_lambda_resource(
343+
"event_source_mapping_sqs",
344+
additional_replacements=replacements,
345+
)
346+
logging.debug(resource_data)
347+
348+
# Create k8s resource
349+
ref = k8s.CustomResourceReference(
350+
CRD_GROUP, CRD_VERSION, RESOURCE_PLURAL,
351+
resource_name, namespace="default",
352+
)
353+
k8s.create_custom_resource(ref, resource_data)
354+
cr = k8s.wait_resource_consumed_by_controller(ref)
355+
356+
assert cr is not None
357+
assert k8s.get_resource_exists(ref)
358+
359+
time.sleep(CREATE_WAIT_AFTER_SECONDS)
360+
361+
esm_uuid = cr['status']['uuid']
362+
363+
lambda_validator = LambdaValidator(lambda_client)
364+
# Check ESM exists
365+
assert lambda_validator.event_source_mapping_exists(esm_uuid)
366+
367+
# Update cr
368+
cr["spec"]["scalingConfig"] = {"maximumConcurrency": 4}
369+
370+
# Patch k8s resource
371+
k8s.patch_custom_resource(ref, cr)
372+
time.sleep(UPDATE_WAIT_AFTER_SECONDS)
373+
374+
# Check ESM batch size
375+
esm = lambda_validator.get_event_source_mapping(esm_uuid)
376+
assert esm is not None
377+
assert esm["ScalingConfig"]["MaximumConcurrency"] == 4
378+
379+
# Delete k8s resource
380+
_, deleted = k8s.delete_custom_resource(ref)
381+
assert deleted
382+
383+
time.sleep(DELETE_WAIT_AFTER_SECONDS)
384+
385+
# Check ESM doesn't exist
386+
assert not lambda_validator.event_source_mapping_exists(esm_uuid)
387+

0 commit comments

Comments
 (0)