Skip to content

test: Move universal offline/online/materialization tests to universal/ directory#6505

Open
yashghatol wants to merge 1 commit into
feast-dev:masterfrom
yashghatol:test/restructure-universal-6051
Open

test: Move universal offline/online/materialization tests to universal/ directory#6505
yashghatol wants to merge 1 commit into
feast-dev:masterfrom
yashghatol:test/restructure-universal-6051

Conversation

@yashghatol

Copy link
Copy Markdown

What this PR does / why we need it

Relocates cross-backend parameterized tests from sdk/python/tests/integration/* into dedicated sdk/python/tests/universal/* directories, aligning the test suite with the 4-tier taxonomy proposed in #6048.

No test logic or behavior changes are introduced.

universal/offline_store/

Move all 10 test files from integration/offline_store/.

These tests use the shared environment fixture and are marked with @pytest.mark.universal_offline_stores, confirming that they run across multiple backend implementations.

universal/online_store/

Move the following files from integration/online_store/:

  • test_universal_e2e.py
  • test_universal_online.py
  • test_universal_online_types.py
  • test_push_features_to_online_store.py

universal/materialization/

Move:

  • test_universal_materialization.py

from integration/materialization/.

Outlier corrections

Move tests that do not belong in the universal layer:

  • test_hybrid_online_store.pyunit/

    • Uses only unittest.mock
    • Does not interact with external services
  • test_remote_online_store.pyintegration/permissions/auth/

    • Auth-specific integration coverage
    • Not cross-backend/universal behavior

Reference updates

Update references impacted by the test relocation:

  • Fix 4 stale paths in Makefile

    • Cassandra target
    • Milvus target
    • Qdrant target
    • Additional stale reference
  • Correct filename:

    • test_validation.pytest_dqm_validation.py
  • Update:

    • docs/how-to-guides/adding-or-reusing-tests.md
    • sdk/python/tests/README.md

Which issue(s) this PR fixes

Closes #6051

Does this PR introduce a user-facing change?

NONE

Checks

  • I've made sure the tests are passing
  • My commits are signed off (git commit -s)
  • My PR title follows the Conventional Commits format

Testing Strategy

  • Unit tests (make test-python-unit)

    • 1907 passed
    • 35 skipped
    • 6 pre-existing PySpark/CUDA failures unrelated to this PR
  • Integration tests

  • Manual tests

  • Testing is not required for this change

Additional Notes

This is my first contribution to Feast, so please let me know if there's anything I've overlooked or if you'd prefer a different approach.

@yashghatol yashghatol requested a review from a team as a code owner June 11, 2026 20:01
…re/conftest.py

The fixture was defined in integration/online_store/conftest.py but its
only consumers were moved to universal/online_store/ — breaking fixture
scope. Move fixture and helper class to universal/online_store/conftest.py.
Strip integration/online_store/conftest.py (no remaining fixture users).

Also remove stale pytestmark = pytest.mark.integration from
test_hybrid_online_store.py (uses unittest.mock only, no real services).

Signed-off-by: Yash Ghatol <yashghatol@gmail.com>
@yashghatol yashghatol force-pushed the test/restructure-universal-6051 branch from 03fa8a0 to 2b77ab4 Compare June 12, 2026 11:29
@yashghatol

Copy link
Copy Markdown
Author

Post-submit fixup

Audit caught two issues:

  • dynamodb_local_environment fixture was defined in integration/online_store/conftest.py but its only consumers (test_universal_online.py, test_push_features_to_online_store.py) were moved to universal/online_store/ ,pytest could no longer find it. Moved the fixture to universal/online_store/conftest.py.

  • Removed stale pytestmark = pytest.mark.integration from test_hybrid_online_store.py ,it uses unittest.mock only and belongs in unit/.

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.

[Test restructure 3] Move universal tests to universal directory

1 participant