Skip to content

Commit 401175d

Browse files
committed
update write_app tests to avoid protocol mismatch
1 parent e6c6536 commit 401175d

2 files changed

Lines changed: 34 additions & 33 deletions

File tree

vetiver/tests/test_prepare_docker.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ def create_vetiver_model():
3232
return vetiver.VetiverModel(model.fit(X, y), "model", prototype_data=X)
3333

3434

35+
def test_warning_if_no_protocol(create_vetiver_model):
36+
with pytest.warns(UserWarning):
37+
board = pins.board_temp(allow_pickle_read=True)
38+
board.fs.protocol = "abc"
39+
40+
vetiver.get_board_pkgs(board)
41+
42+
3543
@pytest.mark.parametrize(
3644
"prot,output",
3745
[
@@ -51,11 +59,3 @@ def test_get_board_pkgs(prot, output, create_vetiver_model):
5159
file = Path(tempdir, "vetiver_requirements.txt")
5260
contents = open(file).read()
5361
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/tests/test_write_app.py

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
1-
import os
21
import pins
32
import vetiver
3+
import pytest
4+
from tempfile import TemporaryDirectory
5+
from pathlib import Path
46

5-
# Load data, model
6-
X_df, y = vetiver.get_mock_data()
7-
model = vetiver.get_mock_model().fit(X_df, y)
87

8+
@pytest.fixture
9+
def vetiver_model_creation():
10+
X_df, y = vetiver.get_mock_data()
11+
model = vetiver.get_mock_model().fit(X_df, y)
12+
return vetiver.VetiverModel(model, "model")
913

10-
def test_write_app():
11-
file = "app.py"
12-
v = vetiver.VetiverModel(
13-
model=model, prototype_data=X_df, model_name="model", versioned=None
14-
)
15-
model_board = pins.board_folder(path=".", versioned=True, allow_pickle_read=True)
16-
vetiver.vetiver_pin_write(board=model_board, model=v)
17-
vetiver.write_app(model_board, "model", file="app.py")
18-
contents = open(file).read()
19-
os.remove(file)
20-
version = model_board.pin_versions("model").sort_values(
21-
by="created", ascending=False
22-
)
23-
version = version.version[0]
24-
assert (
25-
contents
26-
== f"""from vetiver import VetiverModel
14+
15+
def test_write_app(vetiver_model_creation):
16+
with TemporaryDirectory() as tempdir:
17+
file = Path(tempdir, "app.py")
18+
model_board = pins.board_folder(path=tempdir, allow_pickle_read=True)
19+
vetiver.vetiver_pin_write(model_board, vetiver_model_creation)
20+
vetiver.write_app(model_board, "model", file=file)
21+
contents = open(file).read()
22+
version = model_board.pin_versions("model").sort_values(
23+
by="created", ascending=False
24+
)
25+
version = version.version[0]
26+
assert (
27+
contents
28+
== f"""from vetiver import VetiverModel
2729
import vetiver
2830
import pins
2931
3032
31-
b = pins.board_folder('.', allow_pickle_read=True)
32-
v = VetiverModel.from_pin(b, 'model', version = '{version}')
33+
b = pins.board_folder({repr(tempdir)}, allow_pickle_read=True)
34+
v = VetiverModel.from_pin(b, 'model', version = {repr(version)})
3335
3436
vetiver_api = vetiver.VetiverAPI(v)
3537
api = vetiver_api.app
3638
"""
37-
)
38-
model_board.pin_delete("model")
39+
)

0 commit comments

Comments
 (0)