Skip to content

Commit c529d58

Browse files
pyalexadchia
authored andcommitted
fix: Correct feature statuses during feature logging test (#2709)
* fix: Feature Logging test & python server ports Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com> * optional timedelta Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com> * revert Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com> * typo Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
1 parent e714b16 commit c529d58

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

sdk/python/tests/integration/e2e/test_go_feature_server.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import pytest
1111
import pytz
1212

13-
from feast import FeatureService, ValueType
13+
from feast import FeatureService, FeatureView, ValueType
1414
from feast.embedded_go.lib.embedded import LoggingOptions
1515
from feast.embedded_go.online_features_service import EmbeddedOnlineFeatureServer
1616
from feast.feast_object import FeastObject
@@ -162,13 +162,14 @@ def test_feature_logging(
162162

163163
_, datasets, _ = universal_data_sources
164164
latest_rows = get_latest_rows(datasets.driver_df, "driver_id", driver_ids)
165+
feature_view = fs.get_feature_view("driver_stats")
165166
features = [
166167
feature.name
167168
for proj in feature_service.feature_view_projections
168169
for feature in proj.features
169170
]
170171
expected_logs = generate_expected_logs(
171-
latest_rows, "driver_stats", features, ["driver_id"], "event_timestamp"
172+
latest_rows, feature_view, features, ["driver_id"], "event_timestamp"
172173
)
173174

174175
def retrieve():
@@ -213,15 +214,26 @@ def get_latest_rows(df, join_key, entity_values):
213214

214215

215216
def generate_expected_logs(
216-
df, feature_view_name, features, join_keys, timestamp_column
217+
df: pd.DataFrame,
218+
feature_view: FeatureView,
219+
features: List[str],
220+
join_keys: List[str],
221+
timestamp_column: str,
217222
):
218223
logs = pd.DataFrame()
219224
for join_key in join_keys:
220225
logs[join_key] = df[join_key]
221226

222227
for feature in features:
223-
logs[f"{feature_view_name}__{feature}"] = df[feature]
224-
logs[f"{feature_view_name}__{feature}__timestamp"] = df[timestamp_column]
225-
logs[f"{feature_view_name}__{feature}__status"] = FieldStatus.PRESENT
228+
col = f"{feature_view.name}__{feature}"
229+
logs[col] = df[feature]
230+
logs[f"{col}__timestamp"] = df[timestamp_column]
231+
logs[f"{col}__status"] = FieldStatus.PRESENT
232+
if feature_view.ttl:
233+
logs[f"{col}__status"] = logs[f"{col}__status"].mask(
234+
df[timestamp_column]
235+
< datetime.utcnow().replace(tzinfo=pytz.UTC) - feature_view.ttl,
236+
FieldStatus.OUTSIDE_MAX_AGE,
237+
)
226238

227239
return logs.sort_values(by=join_keys).reset_index(drop=True)

0 commit comments

Comments
 (0)