| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # mypy: disable-error-code="attr-defined"
- import io
- import pytest
- import subprocess
- import typing
- import unittest.mock
- from pathlib import Path
- import cipy
- import cipy.script
- def mock_run(args, stdout, stderr, check, **kwargs):
- return subprocess.CompletedProcess(
- args=args,
- stdout=None if stdout is None else "",
- stderr=None if stderr is None else "",
- returncode=0,
- )
- @pytest.fixture(scope="function", autouse=True)
- def disable_subprocess() -> typing.Iterator[None]:
- mock = unittest.mock.Mock()
- mock.side_effect = mock_run
- with unittest.mock.patch("subprocess.run", mock):
- yield
- def test_node_run_runs_main() -> None:
- action = cipy.script.NodeScript(name="example", main=Path("/dev/null"))
- action.run(cipy.Context())
- assert subprocess.run.call_args_list[0][0] == (["node", "/dev/null"],)
- def test_node_cleanup_noop_without_post() -> None:
- action = cipy.script.NodeScript(name="example", main=Path("/dev/null"))
- action.cleanup(cipy.Context())
- subprocess.run.assert_not_called()
- def test_node_cleanup_runs_post() -> None:
- action = cipy.script.NodeScript(
- name="example", main=Path("/dev/null"), post=Path("/dev/zero")
- )
- action.cleanup(cipy.Context())
- assert subprocess.run.call_args_list[0].args == (["node", "/dev/zero"],)
|