Skip to content

Commit e6c6536

Browse files
committed
add tests
1 parent fd436e1 commit e6c6536

3 files changed

Lines changed: 46 additions & 4 deletions

File tree

vetiver/tests/test_pin_write.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_board_pin_write_error():
1616
model=model, prototype_data=X_df, model_name="model", versioned=None
1717
)
1818
board = pins.board_temp()
19-
with pytest.raises(NotImplementedError):
19+
with pytest.raises(ValueError):
2020
vetiver_pin_write(board=board, model=v)
2121

2222

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import pytest
22
import vetiver
3+
import pins
4+
from pathlib import Path
5+
from tempfile import TemporaryDirectory
36
import pandas as pd
47
import numpy as np
58

69
DOCKER_URL = "http://0.0.0.0:8080/predict"
710

8-
pytestmark = pytest.mark.docker # noqa
11+
# uses GitHub Actions to deploy model into Docker
12+
# see vetiver-python/script/setup-docker for files
913

1014

11-
def test_predict_sklearn_df_check_ptype():
15+
@pytest.mark.docker
16+
def test_deployed_dockerfile():
1217
np.random.seed(500)
1318

1419
X, y = vetiver.mock.get_mock_data()
@@ -17,3 +22,40 @@ def test_predict_sklearn_df_check_ptype():
1722
assert isinstance(response, pd.DataFrame), response
1823
assert response.iloc[0, 0] == 44.47
1924
assert len(response) == 100
25+
26+
27+
@pytest.fixture()
28+
def create_vetiver_model():
29+
X, y = vetiver.get_mock_data()
30+
model = vetiver.get_mock_model()
31+
32+
return vetiver.VetiverModel(model.fit(X, y), "model", prototype_data=X)
33+
34+
35+
@pytest.mark.parametrize(
36+
"prot,output",
37+
[
38+
(["s3", "s3a"], "s3fs"),
39+
("abfs", "adlfs"),
40+
(("gcs", "gs"), "gcsfs"),
41+
],
42+
)
43+
def test_get_board_pkgs(prot, output, create_vetiver_model):
44+
board = pins.board_temp(allow_pickle_read=True)
45+
board.fs.protocol = prot
46+
47+
vetiver.vetiver_pin_write(board, create_vetiver_model)
48+
49+
with TemporaryDirectory() as tempdir:
50+
vetiver.prepare_docker(board, "model", path=tempdir)
51+
file = Path(tempdir, "vetiver_requirements.txt")
52+
contents = open(file).read()
53+
assert f"{output}==" in contents
54+
55+
56+
def test_warning_if_no_protocol(create_vetiver_model):
57+
with pytest.warns(UserWarning):
58+
board = pins.board_temp(allow_pickle_read=True)
59+
board.fs.protocol = "abc"
60+
61+
vetiver.get_board_pkgs(board)

vetiver/write_docker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def prepare_docker(
101101
board,
102102
pin_name: str,
103103
path: str = "./",
104-
version: str = None,
104+
version=None,
105105
rspm_env: bool = False,
106106
host: str = "0.0.0.0",
107107
port: str = "8080",

0 commit comments

Comments
 (0)