|
15 | 15 | #
|
16 | 16 |
|
17 | 17 | import copy
|
| 18 | +import os |
18 | 19 |
|
19 | 20 | import humps
|
20 | 21 | from hsml import model
|
21 | 22 | from hsml.constants import MODEL
|
| 23 | +from hsml.core import explicit_provenance |
22 | 24 |
|
23 | 25 |
|
24 | 26 | class TestModel:
|
@@ -398,3 +400,71 @@ def assert_model(self, mocker, m, m_json, model_framework):
|
398 | 400 | mock_read_file.assert_called_once_with(
|
399 | 401 | model_instance=m, resource=m_json["environment"]
|
400 | 402 | )
|
| 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