1- from unittest .mock import patch
1+ from unittest .mock import patch , ANY
22import pytest
33from click .testing import CliRunner
44
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