Skip to content

Conversation

@baermat
Copy link
Member

@baermat baermat commented Nov 24, 2025

Motivation

This PR enables all of the remaining publish tests that were skipped due to the v2 provider not having enough features.
It also fixes wrong behaviour where the v2 provider incorrectly assigns a default SignatureVersion for fifo topics.
closes PNX-379
closes PNX-75

Changes

  • re-enable most tests
  • remove signature version = 2 for fifo topics

Tests

Related

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

Test Results - Preflight, Unit

22 669 tests  ±0   20 901 ✅ ±0   6m 40s ⏱️ +18s
     1 suites ±0    1 768 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 92d76d5. ± Comparison against base commit 174e8ab.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

Test Results - Alternative Providers

198 tests   - 1 265   154 ✅  - 686   2m 10s ⏱️ - 34m 28s
  1 suites  -     4    44 💤  - 579 
  1 files    -     4     0 ❌ ±  0 

Results for commit 92d76d5. ± Comparison against base commit 12934db.

This pull request removes 1265 tests.
tests.aws.services.cloudformation.api.test_changesets ‑ test_autoexpand_capability_requirement
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_and_then_remove_non_supported_resource_change_set
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_and_then_remove_supported_resource_change_set
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_and_then_update_refreshes_template_metadata
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_create_existing
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_invalid_params
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_missing_stackname
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_no_changes
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_update_nonexisting
tests.aws.services.cloudformation.api.test_changesets ‑ test_create_change_set_update_without_parameters
…

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

Test Results (amd64) - Acceptance

7 tests  ±0   5 ✅ ±0   3m 25s ⏱️ +11s
1 suites ±0   2 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 92d76d5. ± Comparison against base commit 12934db.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

Test Results (amd64) - Integration, Bootstrap

    5 files  ±    0      5 suites  ±0   1h 26m 34s ⏱️ - 1h 14m 59s
2 986 tests  - 2 363  2 834 ✅  - 1 977  152 💤  - 386  0 ❌ ±0 
2 992 runs   - 2 363  2 834 ✅  - 1 977  158 💤  - 386  0 ❌ ±0 

Results for commit 92d76d5. ± Comparison against base commit 12934db.

This pull request removes 2363 tests.
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_lambda_dynamodb
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_opensearch_crud
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_search_books
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_setup
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_destination_sns
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_infra
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_prefill_dynamodb_table
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input0-SUCCEEDED]
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input1-SUCCEEDED]
…

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

LocalStack Community integration with Pro

    2 files  ±    0      2 suites  ±0   1h 1m 33s ⏱️ - 1h 2m 18s
2 962 tests  - 2 013  2 807 ✅  - 1 790  155 💤  - 223  0 ❌ ±0 
2 964 runs   - 2 013  2 807 ✅  - 1 790  157 💤  - 223  0 ❌ ±0 

Results for commit 92d76d5. ± Comparison against base commit 12934db.

This pull request removes 2013 tests.
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_lambda_dynamodb
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_opensearch_crud
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_search_books
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_setup
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_destination_sns
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_infra
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_prefill_dynamodb_table
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input0-SUCCEEDED]
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input1-SUCCEEDED]
…

♻️ This comment has been updated with latest results.

@baermat baermat added semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases docs: skip Pull request does not require documentation changes notes: skip Pull request does not have to be mentioned in the release notes labels Nov 24, 2025
@silv-io silv-io added this to the 4.12 milestone Nov 24, 2025
@baermat baermat marked this pull request as ready for review November 25, 2025 09:44
@baermat baermat requested a review from bentsku as a code owner November 25, 2025 09:44
@baermat baermat force-pushed the sns/v2-publish-continued branch from ae2a8a6 to 2d4506a Compare November 25, 2025 09:46
Copy link
Contributor

@bentsku bentsku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice work! Nice to see so many tests enabled now!

How many tests are still failing?

Regarding the test_subscribe_external_http_endpoint_content_type, I believe it is important that this works before we switch the provider, as it tests some behavior of the HTTP type endpoint and how we deliver messages to those. If we don't see the right content type, some integrations are failing.

I've also spotted a skip that wasn't removed.

But this can be addressed in a follow-up 👍 nice work!



@pytest.fixture
def sns_provider():
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's a smart way to go over the limitation 👍 I guess ultimately we should not access those things in memory and use the external API, but definitely out of scope of this PR, this is a great workaround! nice work


@markers.aws.needs_fixing
# AWS validating this is hard because we need real credentials for a GCM/Apple mobile app
@skip_if_sns_v2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this one still has the skip

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, and a good thing too you caught that because there was a bug 😅

"$.topic-attrs.Attributes.Policy.Statement..Action",
]
)
# Is this even executable against AWS?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it is 😄 but it is quite a complex setup: you need to make your local http server reachable from the internet to be able to see what messages SNS sent you. See the sns_create_http_endpoint fixture.

Ultimately, I think we could replace this manual setup with a lambda Function URL instead and forward those received HTTP calls via SQS and retrieve them, but we wouldn't be able to test as much as Lambda will modify the incoming payload so it's not as precise as this setup.

But this test was validated, and I believe is important that it passes because this was reported by users and was directly implementing the feature.

How does it still fail today? What errors do we get?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was an error when raw message delivery was disabled, and it was one header only that was wrong. I thought that before I start a deep dive as to why one specific header fails, I want to clarify if this is even relevant 😄 But it is, and it was a bug in the publisher, needed another of these "access pascal case or CamelCase for topic attributes" fixes we talked about.

@baermat baermat force-pushed the sns/v2-publish-continued branch from 319aca9 to 92d76d5 Compare November 27, 2025 09:21
@localstack-bot
Copy link
Contributor

Currently, only patch changes are allowed on main. Your PR labels (semver: minor, docs: skip, notes: skip) indicate that it cannot be merged into the main at this time.

@baermat baermat merged commit cf2a876 into main Dec 1, 2025
46 of 47 checks passed
@baermat baermat deleted the sns/v2-publish-continued branch December 1, 2025 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs: skip Pull request does not require documentation changes notes: skip Pull request does not have to be mentioned in the release notes semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants