MCPcopy
hub / github.com/feast-dev/feast / basic_rw_test

Function basic_rw_test

sdk/python/tests/utils/basic_read_write_test.py:10–81  ·  view source on GitHub ↗

This is a provider-independent test suite for reading and writing from the online store, to be used by provider-specific tests. The specified feature view must have exactly two features: one named 'lat' with type Float32 and one with name 'lon' with type String.

(
    store: FeatureStore, view_name: str, feature_service_name: Optional[str] = None
)

Source from the content-addressed store, hash-verified

8
9
10def basic_rw_test(
11 store: FeatureStore, view_name: str, feature_service_name: Optional[str] = None
12) -> None:
13 """
14 This is a provider-independent test suite for reading and writing from the online store, to
15 be used by provider-specific tests.
16
17 The specified feature view must have exactly two features: one named 'lat' with type Float32
18 and one with name 'lon' with type String.
19 """
20 table = store.get_feature_view(name=view_name)
21
22 provider = store._get_provider()
23
24 entity_key = EntityKeyProto(
25 join_keys=["driver_id"], entity_values=[ValueProto(int64_val=1)]
26 )
27
28 def _driver_rw_test(event_ts, created_ts, write, expect_read):
29 """A helper function to write values and read them back"""
30 write_lat, write_lon = write
31 expect_lat, expect_lon = expect_read
32 provider.online_write_batch(
33 config=store.config,
34 table=table,
35 data=[
36 (
37 entity_key,
38 {
39 "lat": ValueProto(double_val=write_lat),
40 "lon": ValueProto(string_val=write_lon),
41 },
42 event_ts,
43 created_ts,
44 )
45 ],
46 progress=None,
47 )
48
49 if feature_service_name:
50 entity_dict = {"driver_id": 1}
51 feature_service = store.get_feature_service(feature_service_name)
52 features = store.get_online_features(
53 features=feature_service, entity_rows=[entity_dict]
54 ).to_dict()
55 assert len(features["driver_id"]) == 1
56 assert features["lon"][0] == expect_lon
57 assert abs(features["lat"][0] - expect_lat) < 1e-6
58 else:
59 read_rows = provider.online_read(
60 config=store.config, table=table, entity_keys=[entity_key]
61 )
62 assert len(read_rows) == 1
63 _, val = read_rows[0]
64 assert val["lon"].string_val == expect_lon
65 assert abs(val["lat"].double_val - expect_lat) < 1e-6
66
67 """ 1. Basic test: write value, read it back """

Callers 4

test_universal_cliFunction · 0.90
test_partialFunction · 0.90
test_readFunction · 0.90

Calls 4

_utc_nowFunction · 0.90
_driver_rw_testFunction · 0.85
get_feature_viewMethod · 0.45
_get_providerMethod · 0.45

Tested by

no test coverage detected