Skip to content

Commit 0e397ee

Browse files
committed
Add basic test for cli.build
1 parent 3d7e1e6 commit 0e397ee

File tree

1 file changed

+43
-15
lines changed

1 file changed

+43
-15
lines changed

test/test_cli.py

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from unittest.mock import patch
1+
from unittest.mock import patch, ANY
22
import pytest
33
from click.testing import CliRunner
44

@@ -12,8 +12,18 @@
1212
@pytest.mark.parametrize("batch_arg", [[], ["--batch"]])
1313
@pytest.mark.parametrize("server_arg", [[], ["--server"]])
1414
@pytest.mark.parametrize("from_saved_arg", [[], ["--from-saved"]])
15-
def test_make_script(run_mock, convert_mock, init_mock, tmp_path, verbose_arg, batch_arg, server_arg, from_saved_arg):
15+
def test_make_script(
16+
run_mock,
17+
convert_mock,
18+
init_mock,
19+
tmp_path,
20+
verbose_arg,
21+
batch_arg,
22+
server_arg,
23+
from_saved_arg,
24+
):
1625
from xcengine.cli import logging
26+
1727
logging.getLogger().setLevel(logging.WARN)
1828
nb_path = tmp_path / "foo.ipynb"
1929
nb_path.touch()
@@ -22,23 +32,41 @@ def test_make_script(run_mock, convert_mock, init_mock, tmp_path, verbose_arg, b
2232
runner = CliRunner()
2333
result = runner.invoke(
2434
cli,
25-
verbose_arg +
26-
[
27-
"make-script"] +
28-
batch_arg + server_arg + from_saved_arg +
29-
[
35+
verbose_arg
36+
+ ["make-script"]
37+
+ batch_arg
38+
+ server_arg
39+
+ from_saved_arg
40+
+ [
3041
str(nb_path),
3142
str(output_dir),
3243
],
3344
)
34-
convert_mock.assert_called()
35-
init_mock.assert_called()
45+
convert_mock.assert_called_once_with(
46+
output_dir=output_dir, clear_output=False
47+
)
48+
init_mock.assert_called_once_with(nb_path)
3649
if batch_arg or server_arg:
37-
run_mock.assert_called_with(
38-
[
39-
"python3",
40-
output_dir / "execute.py" ] +
41-
batch_arg + server_arg + from_saved_arg
50+
run_mock.assert_called_once_with(
51+
["python3", output_dir / "execute.py"]
52+
+ batch_arg
53+
+ server_arg
54+
+ from_saved_arg
4255
)
43-
assert logging.getLogger().getEffectiveLevel() == (logging.DEBUG if "--verbose" in verbose_arg else logging.WARNING)
56+
assert logging.getLogger().getEffectiveLevel() == (
57+
logging.DEBUG if "--verbose" in verbose_arg else logging.WARNING
58+
)
4459
assert result.exit_code == 0
60+
61+
62+
@patch("xcengine.core.ImageBuilder.__init__")
63+
@patch("xcengine.core.ImageBuilder.build")
64+
def test_image_build(build_mock, init_mock, tmp_path):
65+
nb_path = tmp_path / "foo.ipynb"
66+
nb_path.touch()
67+
runner = CliRunner()
68+
tag = "foo"
69+
result = runner.invoke(cli, ["image", "build", "--tag", tag, str(nb_path)])
70+
init_mock.assert_called_once_with(
71+
notebook=nb_path, environment=None, tag=tag, build_dir=ANY
72+
)

0 commit comments

Comments
 (0)