Skip to content

test(integration): refactor PolarisRestCatalogIntegrationTest to run against any cloud provider #1934

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 27, 2025

Conversation

HotSushi
Copy link
Contributor

@HotSushi HotSushi commented Jun 24, 2025

Summary

This PR makes it easier to test the Polaris catalog across different cloud environments by refactoring the existing integration tests - PolarisRestCatalogIntegrationTest. Previously, the tests would only run for S3 or local storage. Key changes include:

  • Refactored the main integration test into a reusable abstract base class.
  • Added new integration test classes for specific storage backends: AWS, Azure, GCP, and local files.
  • Updated Quarkus integration test classes to use these new backend-specific tests.
  • Improved test modularity, making it easier to run and maintain catalog integration tests for multiple storage environments.
  • Updated license and resource references to reflect the new test structure.

Changes are influenced by the PR: https://github.com/apache/polaris/pull/590/files#diff-725b3a0c77d412c1d2b2b3cc1660824f180bfc459b7180023b6c26ba6d4e0962

Testing

./gradlew build succeeds
./gradlew check succeeds
✅ AWS Test succeeds:

INTEGRATION_TEST_S3_PATH=XXXX INTEGRATION_TEST_S3_ROLE_ARN=XXXX ./gradlew :polaris-runtime-service:intTest --tests QuarkusRestCatalogAwsIT

✅ AZURE Test succeeds:

INTEGRATION_TEST_AZURE_PATH=XXXX INTEGRATION_TEST_AZURE_TENANT_ID=XXXX ./gradlew :polaris-runtime-service:intTest --tests QuarkusRestCatalogAzureIT

✅ GCP Test succeeds:

INTEGRATION_TEST_GCS_PATH=XXXX INTEGRATION_TEST_GCS_SERVICE_ACCOUNT=XXXX ./gradlew :polaris-runtime-service:intTest --tests QuarkusRestCatalogGcpIT

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

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

Nice refactoring, @HotSushi ! Thanks for your contribution.

Some minor comments below.

Also, would you mind adding a small note for how to run these tests with various storage providers in a README under the integration-tests module?

Edit: README somewhere... integration-tests is not aware of cloud providers, of course 😅

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

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

Aside from AWS test failures, the changes LGTM.

Would anyone be able to validate Azure and GCS tests?

dimas-b
dimas-b previously approved these changes Jun 26, 2025
@github-project-automation github-project-automation bot moved this from PRs In Progress to Ready to merge in Basic Kanban Board Jun 26, 2025
@HotSushi
Copy link
Contributor Author

HotSushi commented Jun 27, 2025

@dimas-b tested and working on all clouds, should be good to merge? Need another approval~

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

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

Thanks for your work on this @HotSushi ! ... merging.

@dimas-b dimas-b merged commit 438d06c into apache:main Jun 27, 2025
11 checks passed
@github-project-automation github-project-automation bot moved this from Ready to merge to Done in Basic Kanban Board Jun 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants