Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions Makefile
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ test-python-integration: ## Run Python integration tests (CI)
uv run python -m pytest --tb=short -v -n 8 --integration --color=yes --durations=10 --timeout=1200 --timeout_method=thread --dist loadgroup \
-k "(not snowflake or not test_historical_features_main)" \
-m "not rbac_remote_integration_test and not ray_offline_stores_only" \
--ignore=sdk/python/tests/integration/registration \
--ignore=sdk/python/tests/universal/registration \
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
--ignore=sdk/python/tests/component/ray \
--log-cli-level=INFO -s \
sdk/python/tests
Expand All @@ -207,7 +207,7 @@ test-python-integration-local: ## Run Python integration tests (local dev mode)
-k "not test_lambda_materialization and not test_snowflake_materialization" \
-m "not rbac_remote_integration_test and not ray_offline_stores_only" \
--ignore=sdk/python/tests/component/ray \
--ignore=sdk/python/tests/integration/registration \
--ignore=sdk/python/tests/universal/registration \
--log-cli-level=INFO -s \
sdk/python/tests

Expand Down Expand Up @@ -474,8 +474,8 @@ test-python-universal-cassandra: ## Run Python Cassandra integration tests
FULL_REPO_CONFIGS_MODULE=sdk.python.feast.infra.online_stores.cassandra_online_store.cassandra_repo_configuration \
PYTEST_PLUGINS=sdk.python.tests.universal.feature_repos.universal.online_store.cassandra \
python -m pytest -x --integration \
sdk/python/tests/integration/offline_store/test_feature_logging.py \
--ignore=sdk/python/tests/integration/offline_store/test_validation.py \
sdk/python/tests/universal/offline_store/test_feature_logging.py \
--ignore=sdk/python/tests/universal/offline_store/test_dqm_validation.py \
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
-k "not test_snowflake and \
not test_spark_materialization_consistency and \
not test_universal_materialization"
Expand Down Expand Up @@ -560,7 +560,7 @@ test-python-universal-milvus-online: ## Run Python Milvus online store integrati
PYTEST_PLUGINS=sdk.python.tests.universal.feature_repos.universal.online_store.milvus \
python -m pytest -n 8 --integration \
-k "test_retrieve_online_milvus_documents" \
sdk/python/tests --ignore=sdk/python/tests/integration/offline_store/test_dqm_validation.py
sdk/python/tests --ignore=sdk/python/tests/universal/offline_store/test_dqm_validation.py

test-python-universal-singlestore-online: ## Run Python Singlestore online store integration tests
PYTHONPATH='.' \
Expand All @@ -579,7 +579,7 @@ test-python-universal-qdrant-online: ## Run Python Qdrant online store integrati
PYTEST_PLUGINS=sdk.python.tests.universal.feature_repos.universal.online_store.qdrant \
python -m pytest -n 8 --integration \
-k "test_retrieve_online_documents" \
sdk/python/tests/integration/online_store/test_universal_online.py
sdk/python/tests/universal/online_store/test_universal_online.py

# To use Couchbase as an offline store, you need to create an Couchbase Capella Columnar cluster on cloud.couchbase.com.
# Modify environment variables COUCHBASE_COLUMNAR_CONNECTION_STRING, COUCHBASE_COLUMNAR_USER, and COUCHBASE_COLUMNAR_PASSWORD
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to-guides/adding-or-reusing-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ Docstring tests are primarily smoke tests to make sure imports and setup functio
Let's look at a sample test using the universal repo:

{% tabs %}
{% tab code="sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py" %}
{% tab code="sdk/python/tests/universal/offline_store/test_universal_historical_retrieval.py" %}
```python
@pytest.mark.integration
@pytest.mark.universal_offline_stores
Expand Down
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -287,13 +287,13 @@ python = "~=3.10.0"
feast = { path = ".", editable = true, extras = ["duckdb", "delta", "grpcio", "test"] }

[tool.pixi.feature.duckdb-tests.tasks]
test = { cmd = "python -m pytest -n 8 --integration -m 'not ray_offline_stores_only' --ignore=sdk/python/tests/integration/offline_store/test_dqm_validation.py sdk/python/tests/integration/offline_store", env = { PYTHONPATH = ".", FULL_REPO_CONFIGS_MODULE = "sdk.python.tests.universal.feature_repos.duckdb_repo_configuration", FEAST_IS_LOCAL_TEST = "True" } }
test = { cmd = "python -m pytest -n 8 --integration -m 'not ray_offline_stores_only' --ignore=sdk/python/tests/universal/offline_store/test_dqm_validation.py sdk/python/tests/universal/offline_store", env = { PYTHONPATH = ".", FULL_REPO_CONFIGS_MODULE = "sdk.python.tests.universal.feature_repos.duckdb_repo_configuration", FEAST_IS_LOCAL_TEST = "True" } }

[tool.pixi.feature.ray-tests.pypi-dependencies]
feast = { path = ".", editable = true, extras = ["ray", "grpcio", "test"] }

[tool.pixi.feature.ray-tests.tasks]
test-offline = { cmd = "python -m pytest -v --integration --ignore=sdk/python/tests/integration/offline_store/test_dqm_validation.py sdk/python/tests/integration/offline_store", env = { PYTHONPATH = ".", FULL_REPO_CONFIGS_MODULE = "sdk.python.tests.universal.feature_repos.ray_repo_configuration", FEAST_IS_LOCAL_TEST = "True" } }
test-offline = { cmd = "python -m pytest -v --integration --ignore=sdk/python/tests/universal/offline_store/test_dqm_validation.py sdk/python/tests/universal/offline_store", env = { PYTHONPATH = ".", FULL_REPO_CONFIGS_MODULE = "sdk.python.tests.universal.feature_repos.ray_repo_configuration", FEAST_IS_LOCAL_TEST = "True" } }
test-compute = { cmd = "python -m pytest -v --integration sdk/python/tests/component/ray", env = { PYTHONPATH = ".", FEAST_IS_LOCAL_TEST = "True" } }
test = { depends-on = ["test-offline", "test-compute"] }

Expand All @@ -302,8 +302,8 @@ feast = { path = ".", editable = true, extras = ["aws", "gcp", "grpcio", "postgr
grpcio-testing = ">=1.56.2,<=1.62.3"

[tool.pixi.feature.registration-tests.tasks]
test = { cmd = "python -m pytest -n auto --dist loadgroup --integration sdk/python/tests/integration/registration", env = { PYTHONPATH = ".", FEAST_IS_LOCAL_TEST = "True" } }
test-ci = { cmd = "python -m pytest -n auto --dist loadgroup --integration sdk/python/tests/integration/registration", env = { PYTHONPATH = "." } }
test = { cmd = "python -m pytest -n auto --dist loadgroup --integration sdk/python/tests/universal/registration", env = { PYTHONPATH = ".", FEAST_IS_LOCAL_TEST = "True" } }
test-ci = { cmd = "python -m pytest -n auto --dist loadgroup --integration sdk/python/tests/universal/registration", env = { PYTHONPATH = "." } }

[tool.pixi.environments]
duckdb-tests = ["py310", "duckdb-tests"]
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ Docstring tests are primarily smoke tests to make sure imports and setup functio
Let's look at a sample test using the universal repo:

{% tabs %}
{% tab code="sdk/python/tests/integration/offline_store/test_universal_historical_retrieval.py" %}
{% tab code="sdk/python/tests/universal/offline_store/test_universal_historical_retrieval.py" %}
```python
@pytest.mark.integration
@pytest.mark.universal_offline_stores
Expand Down
1 change: 1 addition & 0 deletions sdk/python/tests/integration/auth/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions sdk/python/tests/universal/cli/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

8 changes: 8 additions & 0 deletions sdk/python/tests/universal/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""Universal test fixtures.

Load shared integration fixtures for universal tests.
After moving tests from `integration/*` to `universal/*`, pytest no longer
discovers `tests/integration/conftest.py` through parent-directory traversal.
"""

pytest_plugins = ["tests.integration.conftest"]
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
1 change: 1 addition & 0 deletions sdk/python/tests/universal/feature_repos/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions sdk/python/tests/universal/materialization/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions sdk/python/tests/universal/offline_store/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions sdk/python/tests/universal/registration/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@