Skip to content

Commit d4d7b2b

Browse files
committed
code changes for integeration test cases
1 parent 05e58c0 commit d4d7b2b

File tree

2 files changed

+130
-1
lines changed

2 files changed

+130
-1
lines changed

tests/integration/feature_store/test_as_of_for_featuregroup_and_dataset.py

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import ast
2+
import copy
23
import json
34
import random
45
import string
56

67
import pandas as pd
78
import pytest
89

10+
from ads.feature_store.common.enums import IngestionMode
911
from ads.feature_store.common.exceptions import NotMaterializedError
1012
from ads.feature_store.dataset import Dataset
13+
from ads.feature_store.feature_option_details import FeatureOptionDetails
1114
from ads.feature_store.statistics_config import StatisticsConfig
1215
from tests.integration.feature_store.test_base import FeatureStoreTestCase
1316
from ads.feature_store.feature_group import FeatureGroup
@@ -77,6 +80,132 @@ def test_as_of_for_non_materialized_feature_group(self):
7780
with pytest.raises(NotMaterializedError):
7881
fg.as_of()
7982

83+
self.clean_up_feature_group(fg)
84+
self.clean_up_entity(entity)
85+
self.clean_up_feature_store(fs)
86+
87+
def test_as_of_for_non_materialized_dataset(self):
88+
fs = self.define_feature_store_resource().create()
89+
assert fs.oci_fs.id
90+
91+
entity = self.create_entity_resource(fs)
92+
assert entity.oci_fs_entity.id
93+
94+
fg = self.define_feature_group_resource(
95+
entity.oci_fs_entity.id, fs.oci_fs.id
96+
).create()
97+
assert fg.oci_feature_group.id
98+
99+
fg.materialise(self.as_of_data_frame)
100+
101+
dataset = self.define_dataset_resource(
102+
entity.oci_fs_entity.id, fs.oci_fs.id, fg.name
103+
).create()
104+
assert fg.oci_feature_group.id
105+
106+
with pytest.raises(NotMaterializedError):
107+
dataset.as_of()
108+
109+
self.clean_up_dataset(dataset)
110+
self.clean_up_feature_group(fg)
111+
self.clean_up_entity(entity)
112+
self.clean_up_feature_store(fs)
113+
114+
def test_as_of_for_materialized_feature_group_for_only_one_version(self):
115+
fs = self.define_feature_store_resource().create()
116+
assert fs.oci_fs.id
117+
118+
entity = self.create_entity_resource(fs)
119+
assert entity.oci_fs_entity.id
120+
121+
fg = self.define_feature_group_resource(
122+
entity.oci_fs_entity.id, fs.oci_fs.id
123+
).create()
124+
assert fg.oci_feature_group.id
125+
126+
fg.materialise(self.as_of_data_frame)
127+
df = fg.as_of(version_number=0)
128+
129+
assert df
130+
assert len(df.columns) == len(self.test_as_of_data)
131+
132+
self.clean_up_feature_group(fg)
133+
self.clean_up_entity(entity)
134+
self.clean_up_feature_store(fs)
135+
136+
def test_as_of_for_materialized_feature_group_for_multiple_version(self):
137+
fs = self.define_feature_store_resource().create()
138+
assert fs.oci_fs.id
139+
140+
entity = self.create_entity_resource(fs)
141+
assert entity.oci_fs_entity.id
142+
143+
fg = self.define_feature_group_resource(
144+
entity.oci_fs_entity.id, fs.oci_fs.id
145+
).create()
146+
assert fg.oci_feature_group.id
147+
148+
fg.materialise(self.as_of_data_frame)
149+
150+
# Now Update the Payload and materialize again
151+
new_data = copy.deepcopy(self.test_as_of_data)
152+
new_data.pop("Score")
153+
df = pd.DataFrame(new_data)
154+
155+
fg.with_schema_details_from_dataframe(df)
156+
fg.update()
157+
158+
feature_option_write_config_details = (
159+
FeatureOptionDetails().with_feature_option_write_config_details(
160+
overwrite_schema=True
161+
)
162+
)
163+
fg.materialise(
164+
input_dataframe=df,
165+
feature_option_details=feature_option_write_config_details,
166+
ingestion_mode=IngestionMode.OVERWRITE,
167+
)
168+
df = fg.as_of(version_number=0)
169+
170+
assert df
171+
assert len(df.columns) == len(self.test_as_of_data)
172+
173+
df = fg.as_of(version_number=1)
174+
175+
assert df
176+
assert len(df.columns) == len(new_data)
177+
178+
self.clean_up_feature_group(fg)
179+
self.clean_up_entity(entity)
180+
self.clean_up_feature_store(fs)
181+
182+
def test_as_of_for_materialized_dataset(self):
183+
fs = self.define_feature_store_resource().create()
184+
assert fs.oci_fs.id
185+
186+
entity = self.create_entity_resource(fs)
187+
assert entity.oci_fs_entity.id
188+
189+
fg = self.define_feature_group_resource(
190+
entity.oci_fs_entity.id, fs.oci_fs.id
191+
).create()
192+
assert fg.oci_feature_group.id
193+
194+
fg.materialise(self.as_of_data_frame)
195+
196+
dataset = self.define_dataset_resource(
197+
entity.oci_fs_entity.id, fs.oci_fs.id, fg.name
198+
).create()
199+
assert fg.oci_feature_group.id
200+
201+
dataset.materialise()
202+
203+
df = dataset.as_of(version_number=0)
204+
205+
assert df
206+
assert len(df.columns) == len(self.test_as_of_data)
207+
208+
self.clean_up_dataset(dataset)
80209
self.clean_up_feature_group(fg)
81210
self.clean_up_entity(entity)
82211
self.clean_up_feature_store(fs)

tests/integration/feature_store/test_base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
client_kwargs = dict(
2424
retry_strategy=oci.retry.NoneRetryStrategy,
25-
service_endpoint="http://127.0.0.1:21000",
25+
service_endpoint=os.getenv("service_endpoint"),
2626
)
2727
ads.set_auth(client_kwargs=client_kwargs)
2828

0 commit comments

Comments
 (0)