Skip to content

Commit dc51f9a

Browse files
Alexandru OrmenisanAlexandru Ormenisan
Alexandru Ormenisan
authored and
Alexandru Ormenisan
committed
test
1 parent a4bdc33 commit dc51f9a

File tree

3 files changed

+77
-6
lines changed

3 files changed

+77
-6
lines changed

python/hsml/model.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,12 @@ def get_feature_view(self, init: bool = True, online: Optional[bool] = None):
302302
if init:
303303
td_prov = self.get_training_dataset_provenance()
304304
td = explicit_provenance.Links.get_one_accessible_parent(td_prov)
305-
if online:
306-
_logger.info("Initializing serving")
307-
fv.init_serving(training_dataset_version=td.version)
308-
elif os.environ["DEPLOYMENT_NAME"]:
309-
_logger.info("Initializing serving - deployment detected")
305+
is_deployment = "DEPLOYMENT_NAME" in os.environ
306+
if online or is_deployment:
307+
_logger.info(
308+
"Initializing serving"
309+
+ (" - deployment detected" if is_deployment else "")
310+
)
310311
fv.init_serving(training_dataset_version=td.version)
311312
elif online is False:
312313
_logger.info("Initializing batch")

python/hsml/model_serving.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def get_deployment(self, name: str = None):
8989
`RestAPIError`: If unable to retrieve deployment from model serving.
9090
"""
9191

92-
if name is None and os.environ["DEPLOYMENT_NAME"]:
92+
if name is None and ("DEPLOYMENT_NAME" in os.environ):
9393
name = os.environ["DEPLOYMENT_NAME"]
9494
return self._serving_api.get(name)
9595

python/tests/test_model.py

+70
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
#
1616

1717
import copy
18+
import os
1819

1920
import humps
2021
from hsml import model
2122
from hsml.constants import MODEL
23+
from hsml.core import explicit_provenance
2224

2325

2426
class TestModel:
@@ -398,3 +400,71 @@ def assert_model(self, mocker, m, m_json, model_framework):
398400
mock_read_file.assert_called_once_with(
399401
model_instance=m, resource=m_json["environment"]
400402
)
403+
404+
def test_get_feature_view(self, mocker):
405+
mock_fv = mocker.Mock()
406+
links = explicit_provenance.Links(accessible=[mock_fv])
407+
mock_fv_provenance = mocker.patch(
408+
"hsml.model.Model.get_feature_view_provenance", return_value=links
409+
)
410+
mock_td_provenance = mocker.patch(
411+
"hsml.model.Model.get_training_dataset_provenance", return_value=links
412+
)
413+
mocker.patch("os.environ", return_value={})
414+
m = model.Model(1, "test")
415+
m.get_feature_view()
416+
mock_fv_provenance.assert_called_once()
417+
mock_td_provenance.assert_called_once()
418+
assert not mock_fv.init_serving.called
419+
assert not mock_fv.init_batch_scoring.called
420+
421+
def test_get_feature_view_online(self, mocker):
422+
mock_fv = mocker.Mock()
423+
links = explicit_provenance.Links(accessible=[mock_fv])
424+
mock_fv_provenance = mocker.patch(
425+
"hsml.model.Model.get_feature_view_provenance", return_value=links
426+
)
427+
mock_td_provenance = mocker.patch(
428+
"hsml.model.Model.get_training_dataset_provenance", return_value=links
429+
)
430+
mocker.patch("os.environ", return_value={})
431+
m = model.Model(1, "test")
432+
m.get_feature_view(online=True)
433+
mock_fv_provenance.assert_called_once()
434+
mock_td_provenance.assert_called_once()
435+
assert mock_fv.init_serving.called
436+
assert not mock_fv.init_batch_scoring.called
437+
438+
def test_get_feature_view_batch(self, mocker):
439+
mock_fv = mocker.Mock()
440+
links = explicit_provenance.Links(accessible=[mock_fv])
441+
mock_fv_provenance = mocker.patch(
442+
"hsml.model.Model.get_feature_view_provenance", return_value=links
443+
)
444+
mock_td_provenance = mocker.patch(
445+
"hsml.model.Model.get_training_dataset_provenance", return_value=links
446+
)
447+
mocker.patch("os.environ", return_value={})
448+
m = model.Model(1, "test")
449+
m.get_feature_view(online=False)
450+
mock_fv_provenance.assert_called_once()
451+
mock_td_provenance.assert_called_once()
452+
assert not mock_fv.init_serving.called
453+
assert mock_fv.init_batch_scoring.called
454+
455+
def test_get_feature_view_deployment(self, mocker):
456+
mock_fv = mocker.Mock()
457+
links = explicit_provenance.Links(accessible=[mock_fv])
458+
mock_fv_provenance = mocker.patch(
459+
"hsml.model.Model.get_feature_view_provenance", return_value=links
460+
)
461+
mock_td_provenance = mocker.patch(
462+
"hsml.model.Model.get_training_dataset_provenance", return_value=links
463+
)
464+
mocker.patch.dict(os.environ, {"DEPLOYMENT_NAME": "test"})
465+
m = model.Model(1, "test")
466+
m.get_feature_view()
467+
mock_fv_provenance.assert_called_once()
468+
mock_td_provenance.assert_called_once()
469+
assert mock_fv.init_serving.called
470+
assert not mock_fv.init_batch_scoring.called

0 commit comments

Comments
 (0)