Skip to content

Commit 5015d25

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Python SDK for Vertex Feature Store.
PiperOrigin-RevId: 620105958
1 parent d4c3c66 commit 5015d25

File tree

9 files changed

+2615
-1
lines changed

9 files changed

+2615
-1
lines changed

tests/unit/vertexai/conftest.py

+165-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import tempfile
2121
from typing import Any
2222
from unittest import mock
23+
from unittest.mock import patch
2324
import uuid
2425

2526
from google import auth
@@ -47,7 +48,20 @@
4748
ResourceRuntimeSpec,
4849
ServiceAccountSpec,
4950
)
50-
51+
from google.cloud.aiplatform.compat.services import (
52+
feature_online_store_admin_service_client,
53+
)
54+
from feature_store_constants import (
55+
_TEST_BIGTABLE_FOS1,
56+
_TEST_EMBEDDING_FV1,
57+
_TEST_ESF_OPTIMIZED_FOS,
58+
_TEST_ESF_OPTIMIZED_FOS2,
59+
_TEST_FV1,
60+
_TEST_OPTIMIZED_FV1,
61+
_TEST_OPTIMIZED_FV2,
62+
_TEST_PSC_OPTIMIZED_FOS,
63+
_TEST_OPTIMIZED_EMBEDDING_FV,
64+
)
5165

5266
_TEST_PROJECT = "test-project"
5367
_TEST_PROJECT_NUMBER = "12345678"
@@ -332,3 +346,153 @@ def create_persistent_resource_default_mock():
332346
create_persistent_resource_lro_mock
333347
)
334348
yield create_persistent_resource_default_mock
349+
350+
351+
@pytest.fixture
352+
def get_fos_mock():
353+
with patch.object(
354+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
355+
"get_feature_online_store",
356+
) as get_fos_mock:
357+
get_fos_mock.return_value = _TEST_BIGTABLE_FOS1
358+
yield get_fos_mock
359+
360+
361+
@pytest.fixture
362+
def get_esf_optimized_fos_mock():
363+
with patch.object(
364+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
365+
"get_feature_online_store",
366+
) as get_fos_mock:
367+
get_fos_mock.return_value = _TEST_ESF_OPTIMIZED_FOS
368+
yield get_fos_mock
369+
370+
371+
@pytest.fixture
372+
def get_psc_optimized_fos_mock():
373+
with patch.object(
374+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
375+
"get_feature_online_store",
376+
) as get_fos_mock:
377+
get_fos_mock.return_value = _TEST_PSC_OPTIMIZED_FOS
378+
yield get_fos_mock
379+
380+
381+
@pytest.fixture
382+
def get_esf_optimized_fos_no_endpoint_mock():
383+
with patch.object(
384+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
385+
"get_feature_online_store",
386+
) as get_fos_mock:
387+
get_fos_mock.return_value = _TEST_ESF_OPTIMIZED_FOS2
388+
yield get_fos_mock
389+
390+
391+
@pytest.fixture
392+
def create_bigtable_fos_mock():
393+
with patch.object(
394+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
395+
"create_feature_online_store",
396+
) as create_bigtable_fos_mock:
397+
create_fos_lro_mock = mock.Mock(ga_operation.Operation)
398+
create_fos_lro_mock.result.return_value = _TEST_BIGTABLE_FOS1
399+
create_bigtable_fos_mock.return_value = create_fos_lro_mock
400+
yield create_bigtable_fos_mock
401+
402+
403+
@pytest.fixture
404+
def create_esf_optimized_fos_mock():
405+
with patch.object(
406+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
407+
"create_feature_online_store",
408+
) as create_esf_optimized_fos_mock:
409+
create_fos_lro_mock = mock.Mock(ga_operation.Operation)
410+
create_fos_lro_mock.result.return_value = _TEST_ESF_OPTIMIZED_FOS
411+
create_esf_optimized_fos_mock.return_value = create_fos_lro_mock
412+
yield create_esf_optimized_fos_mock
413+
414+
415+
@pytest.fixture
416+
def create_psc_optimized_fos_mock():
417+
with patch.object(
418+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
419+
"create_feature_online_store",
420+
) as create_psc_optimized_fos_mock:
421+
create_fos_lro_mock = mock.Mock(ga_operation.Operation)
422+
create_fos_lro_mock.result.return_value = _TEST_PSC_OPTIMIZED_FOS
423+
create_psc_optimized_fos_mock.return_value = create_fos_lro_mock
424+
yield create_psc_optimized_fos_mock
425+
426+
427+
@pytest.fixture
428+
def get_fv_mock():
429+
with patch.object(
430+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
431+
"get_feature_view",
432+
) as get_fv_mock:
433+
get_fv_mock.return_value = _TEST_FV1
434+
yield get_fv_mock
435+
436+
437+
@pytest.fixture
438+
def create_bq_fv_mock():
439+
with patch.object(
440+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
441+
"create_feature_view",
442+
) as create_bq_fv_mock:
443+
create_bq_fv_lro_mock = mock.Mock(ga_operation.Operation)
444+
create_bq_fv_lro_mock.result.return_value = _TEST_FV1
445+
create_bq_fv_mock.return_value = create_bq_fv_lro_mock
446+
yield create_bq_fv_mock
447+
448+
449+
@pytest.fixture
450+
def create_embedding_fv_from_bq_mock():
451+
with patch.object(
452+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
453+
"create_feature_view",
454+
) as create_embedding_fv_mock:
455+
create_embedding_fv_mock_lro = mock.Mock(ga_operation.Operation)
456+
create_embedding_fv_mock_lro.result.return_value = _TEST_OPTIMIZED_EMBEDDING_FV
457+
create_embedding_fv_mock.return_value = create_embedding_fv_mock_lro
458+
yield create_embedding_fv_mock
459+
460+
461+
@pytest.fixture
462+
def get_optimized_embedding_fv_mock():
463+
with patch.object(
464+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
465+
"get_feature_view",
466+
) as get_fv_mock:
467+
get_fv_mock.return_value = _TEST_OPTIMIZED_EMBEDDING_FV
468+
yield get_fv_mock
469+
470+
471+
@pytest.fixture
472+
def get_optimized_fv_mock():
473+
with patch.object(
474+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
475+
"get_feature_view",
476+
) as get_optimized_fv_mock:
477+
get_optimized_fv_mock.return_value = _TEST_OPTIMIZED_FV1
478+
yield get_optimized_fv_mock
479+
480+
481+
@pytest.fixture
482+
def get_embedding_fv_mock():
483+
with patch.object(
484+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
485+
"get_feature_view",
486+
) as get_embedding_fv_mock:
487+
get_embedding_fv_mock.return_value = _TEST_EMBEDDING_FV1
488+
yield get_embedding_fv_mock
489+
490+
491+
@pytest.fixture
492+
def get_optimized_fv_no_endpointmock():
493+
with patch.object(
494+
feature_online_store_admin_service_client.FeatureOnlineStoreAdminServiceClient,
495+
"get_feature_view",
496+
) as get_optimized_fv_no_endpointmock:
497+
get_optimized_fv_no_endpointmock.return_value = _TEST_OPTIMIZED_FV2
498+
yield get_optimized_fv_no_endpointmock

0 commit comments

Comments
 (0)