|
1 | | -import os |
2 | 1 | import pins |
3 | 2 | import vetiver |
| 3 | +import pytest |
| 4 | +from tempfile import TemporaryDirectory |
| 5 | +from pathlib import Path |
4 | 6 |
|
5 | | -# Load data, model |
6 | | -X_df, y = vetiver.get_mock_data() |
7 | | -model = vetiver.get_mock_model().fit(X_df, y) |
8 | 7 |
|
| 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") |
9 | 13 |
|
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 |
27 | 29 | import vetiver |
28 | 30 | import pins |
29 | 31 |
|
30 | 32 |
|
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)}) |
33 | 35 |
|
34 | 36 | vetiver_api = vetiver.VetiverAPI(v) |
35 | 37 | api = vetiver_api.app |
36 | 38 | """ |
37 | | - ) |
38 | | - model_board.pin_delete("model") |
| 39 | + ) |
0 commit comments