test(e2e): fix all ignored tests, drop duplicates#367
Merged
vieiralucas merged 1 commit intomainfrom Apr 14, 2026
Merged
Conversation
- Delete 3 duplicate ignored Lambda tests from cross_service.rs (eventbridge/sns/s3 → Lambda), all superseded by working sibling tests in lambda_integration.rs that already run in CI. - Un-ignore the 3 unique Lambda integration tests: - dynamodb_streams_to_lambda_executes_code - secretsmanager_rotation_lambda_executes - logs_subscription_filter_invokes_lambda - Fix DynamoDB Streams → Lambda poller: ARN parsing used "/table/" but DynamoDB stream ARNs format the segment as ":table/" (colon prefix), so the poller never extracted a table name and silently skipped every mapping. - Fix SecretsManager rotation flow to match real AWS: do NOT pre-create the AWSPENDING version inside RotateSecret. Real AWS leaves that to the rotation Lambda's createSecret step, and the pre-creation caused PutSecretValue to throw ResourceExistsException on the same ClientRequestToken. Update unit tests and the cross_service no-op rotation test to match. Update the rotation Lambda test code to DescribeSecret first and pass RemoveFromVersionId on UpdateSecretVersionStage, and to poll for the rotated value (4 sequential cold-start invocations are slow). - Fix logs_subscription_filter_invokes_lambda: the inlined Python Lambda code baked 127.0.0.1 URLs into the source, which the runtime only rewrites in env vars. Use host.docker.internal explicitly and poll for the result instead of a fixed sleep. - Replace the silent pytest.skip in sdks/python/tests/test_client.py with a hard RuntimeError when the fakecloud binary is missing. CI builds it before running pytest, so the skip path was dead code that masked broken local runs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#[ignore]tests turned up 6 stale ones incrates/fakecloud-e2e/. Three were duplicates of working tests inlambda_integration.rs(the EventBridge/SNS/S3 → Lambda cases) — deleted. The other three were unique coverage that's now un-ignored and passing.\"/table/\"but stream ARNs use\":table/\"(colon prefix), so the table-name extraction silently dropped every mapping. One-character fix.RotateSecretwas pre-creating anAWSPENDINGversion with the rotation token, then the rotation Lambda'screateSecretstep would callPutSecretValuewith the same token and hitResourceExistsException. Real AWS leaves that creation to the Lambda. Removed the pre-creation; updated the no-opsecretsmanager_rotation_invokes_lambdatest (now asserts on rotation config, not onAWSPENDINGexistence); updated the rotation Lambda test code toDescribeSecretforRemoveFromVersionIdonUpdateSecretVersionStage; and made the test poll for the rotated value (4 sequential cold-start invocations are slow). Twosecretsmanagerunit tests updated to match.logs_subscription_filter_invokes_lambdabaked127.0.0.1URLs into the inlined Python code, but the runtime only rewrites localhost in env vars (not in user code). Switched the test to usehost.docker.internalexplicitly and to poll instead ofsleep(3).pytest.skipinsdks/python/tests/test_client.pywith a hardRuntimeErrorwhen the fakecloud binary is missing — CI builds it before running pytest, so the skip path was dead code that just masked broken local runs.Test plan
cargo nextest run -p fakecloud-e2efor the 8 related Lambda tests, all greencargo run -p fakecloud-e2e --bin e2e_nextest_partitions check— partition coverage clean (799 tests covered exactly once)cargo test -p fakecloud-secretsmanager— 39/39 unit tests greencargo clippy --workspace --all-targets -- -D warnings— cleancargo fmt --allpytest sdks/python— 28/28 greengrep -rn '#\\[ignore' crates/— no matchesSummary by cubic
Unignored and fixed the last Lambda e2e tests, and removed duplicate tests. Also corrected DynamoDB Streams → Lambda polling and SecretsManager rotation to match AWS behavior.
Bug Fixes
RotateSecret: stop pre-creatingAWSPENDING; aligns with AWS and avoidsResourceExistsException. Rotation test now callsDescribeSecret, passesRemoveFromVersionIdon stage update, and polls until value flips.127.0.0.1withhost.docker.internaland poll for SQS proof instead of a fixed sleep.Refactors
crates/fakecloud-e2e/tests/cross_service.rs(EventBridge/SNS/S3 → Lambda). Kept working versions inlambda_integration.rs.dynamodb_streams_to_lambda_executes_code,secretsmanager_rotation_lambda_executes,logs_subscription_filter_invokes_lambda.sdks/python/tests/test_client.py, replace silentpytest.skipwith aRuntimeErrorwhen thefakecloudbinary is missing to surface broken local runs.Written for commit 45d8a62. Summary will update on new commits.