mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
Make the zero-code dsh-python-runtime-closure depend on the real @deepseek-ai/dsh application and every required profile peer, then package apps/cli's built bin instead of the deleted Python carrier. Rename executables to deepseek-harness-sdk-runtime-<platform>-<arch>, update wheel/platform/build workflow discovery, and install a Python dsh console command that requires explicit DSH_HOME before exec. Include profile, bundle, preset, native addon, and shared-library assets needed by the full CLI. Remove the checked-in default cordis.yml and preserve the existing wheel distribution names, Python module names, sidecar validation, and wire identity. Runtime resolution and release tests pin the new artifacts and dev Node carrier.
115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
"""Keyless runtime-resolution tests; launch coverage lives in test_bundled_runtime.py."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import deepseek_harness_runtime as runtime
|
|
import pytest
|
|
|
|
from deepseek_harness_runtime import (
|
|
RUNTIME_MODE_ENV_VAR,
|
|
bundled_package_dir,
|
|
main,
|
|
resolve_bundled_launch_args,
|
|
)
|
|
|
|
|
|
def test_unknown_explicit_mode_fails_loud() -> None:
|
|
with pytest.raises(ValueError, match="expected 'exe' or 'node'"):
|
|
resolve_bundled_launch_args("bogus")
|
|
|
|
|
|
def test_unknown_env_mode_fails_loud(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.setenv(RUNTIME_MODE_ENV_VAR, "bogus")
|
|
with pytest.raises(ValueError, match="expected 'exe' or 'node'"):
|
|
resolve_bundled_launch_args()
|
|
|
|
|
|
def test_explicit_mode_wins_over_env_mode(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.setenv(RUNTIME_MODE_ENV_VAR, "bogus")
|
|
try:
|
|
args = resolve_bundled_launch_args("exe")
|
|
except FileNotFoundError:
|
|
return # explicit 'exe' was honored; only the artifact is missing
|
|
assert args[0].endswith(("-x64", "-arm64"))
|
|
|
|
|
|
def test_runtime_requires_spawn_helper_only_on_macos(
|
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
) -> None:
|
|
runtime_dir = tmp_path / "runtime"
|
|
runtime_dir.mkdir()
|
|
linux = runtime_dir / "deepseek-harness-sdk-runtime-linux-x64"
|
|
linux.touch()
|
|
Path(f"{linux}-rg").touch()
|
|
macos = runtime_dir / "deepseek-harness-sdk-runtime-macos-arm64"
|
|
macos.touch()
|
|
Path(f"{macos}-rg").touch()
|
|
monkeypatch.setattr(runtime, "bundled_package_dir", lambda: tmp_path)
|
|
|
|
monkeypatch.setattr(runtime, "_current_platform_tag", lambda: "macos-arm64")
|
|
with pytest.raises(FileNotFoundError, match="node-pty spawn helper"):
|
|
runtime.bundled_runtime_path()
|
|
monkeypatch.setattr(runtime, "_current_platform_tag", lambda: "linux-x64")
|
|
assert runtime.bundled_runtime_path() == linux
|
|
|
|
|
|
def test_runtime_requires_ripgrep_sidecar(
|
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
) -> None:
|
|
runtime_dir = tmp_path / "runtime"
|
|
runtime_dir.mkdir()
|
|
(runtime_dir / "deepseek-harness-sdk-runtime-linux-x64").touch()
|
|
monkeypatch.setattr(runtime, "bundled_package_dir", lambda: tmp_path)
|
|
monkeypatch.setattr(runtime, "_current_platform_tag", lambda: "linux-x64")
|
|
|
|
with pytest.raises(FileNotFoundError, match="ripgrep sidecar"):
|
|
runtime.bundled_runtime_path()
|
|
|
|
|
|
def test_node_mode_runs_the_deployed_dsh_cli(
|
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
) -> None:
|
|
bin_js = tmp_path / "runtime" / "node" / "node_modules" / "@deepseek-ai" / "dsh" / "lib" / "bin.js"
|
|
bin_js.parent.mkdir(parents=True)
|
|
bin_js.touch()
|
|
monkeypatch.setattr(runtime, "bundled_package_dir", lambda: tmp_path)
|
|
monkeypatch.setattr(runtime.shutil, "which", lambda _name: "/node")
|
|
|
|
assert resolve_bundled_launch_args("node") == ("/node", str(bin_js))
|
|
|
|
|
|
def test_python_dsh_command_requires_explicit_home(
|
|
monkeypatch: pytest.MonkeyPatch, capsys: pytest.CaptureFixture[str]
|
|
) -> None:
|
|
monkeypatch.delenv("DSH_HOME", raising=False)
|
|
|
|
with pytest.raises(SystemExit) as excinfo:
|
|
main()
|
|
|
|
assert excinfo.value.code == 2
|
|
assert "explicit DSH_HOME" in capsys.readouterr().err
|
|
|
|
|
|
def test_python_dsh_command_executes_the_bundled_cli(
|
|
monkeypatch: pytest.MonkeyPatch
|
|
) -> None:
|
|
called: dict[str, object] = {}
|
|
monkeypatch.setenv("DSH_HOME", "/explicit/home")
|
|
monkeypatch.setattr(runtime, "resolve_bundled_launch_args", lambda: ("/runtime",))
|
|
monkeypatch.setattr(runtime.sys, "argv", ["dsh", "plugin", "--profile", "sdk", "list"])
|
|
|
|
def execvpe(file: str, args: tuple[str, ...], env: dict[str, str]) -> None:
|
|
called.update(file=file, args=args, home=env.get("DSH_HOME"))
|
|
|
|
monkeypatch.setattr(runtime.os, "execvpe", execvpe)
|
|
|
|
main()
|
|
|
|
assert called == {
|
|
"file": "/runtime",
|
|
"args": ("/runtime", "plugin", "--profile", "sdk", "list"),
|
|
"home": "/explicit/home",
|
|
}
|