mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-08 10:47:52 +02:00
done
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
import json
|
||||
import pathlib
|
||||
|
||||
import click
|
||||
import pytest
|
||||
|
||||
from langgraph_cli.engine_runtime_mode import resolve_engine_runtime_mode
|
||||
|
||||
|
||||
def _write_config(
|
||||
tmp_path: pathlib.Path,
|
||||
*,
|
||||
python_version: str | None = "3.11",
|
||||
node_version: str | None = None,
|
||||
) -> pathlib.Path:
|
||||
cfg: dict = {"dependencies": ["."], "graphs": {"agent": "agent.py:graph"}}
|
||||
if python_version is not None:
|
||||
cfg["python_version"] = python_version
|
||||
if node_version is not None:
|
||||
cfg["node_version"] = node_version
|
||||
path = tmp_path / "langgraph.json"
|
||||
path.write_text(json.dumps(cfg))
|
||||
return path
|
||||
|
||||
|
||||
class TestResolveEngineRuntimeMode:
|
||||
# -- cli_param == "distributed" -------------------------------------------
|
||||
|
||||
def test_distributed_explicit_new_version(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert (
|
||||
resolve_engine_runtime_mode(path, "0.7.68", "distributed") == "distributed"
|
||||
)
|
||||
|
||||
def test_distributed_explicit_old_version_raises(
|
||||
self, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
with pytest.raises(click.ClickException, match="0.7.67"):
|
||||
resolve_engine_runtime_mode(path, "0.7.67", "distributed")
|
||||
|
||||
def test_distributed_explicit_js_raises(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path, python_version=None, node_version="20")
|
||||
with pytest.raises(click.ClickException, match="JavaScript"):
|
||||
resolve_engine_runtime_mode(path, "0.8.0", "distributed")
|
||||
|
||||
def test_distributed_explicit_js_and_old_version_raises(
|
||||
self, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
path = _write_config(tmp_path, python_version=None, node_version="20")
|
||||
with pytest.raises(click.ClickException, match="JavaScript.*0.7.60"):
|
||||
resolve_engine_runtime_mode(path, "0.7.60", "distributed")
|
||||
|
||||
# -- cli_param == "combined_queue_worker" ----------------------------------
|
||||
|
||||
def test_combined_explicit(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert (
|
||||
resolve_engine_runtime_mode(path, "0.8.0", "combined_queue_worker")
|
||||
== "combined_queue_worker"
|
||||
)
|
||||
|
||||
def test_combined_explicit_old_version(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert (
|
||||
resolve_engine_runtime_mode(path, "0.7.67", "combined_queue_worker")
|
||||
== "combined_queue_worker"
|
||||
)
|
||||
|
||||
# -- cli_param is None (default) -------------------------------------------
|
||||
|
||||
def test_default_is_distributed(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert resolve_engine_runtime_mode(path, "0.8.0", None) == "distributed"
|
||||
|
||||
def test_default_old_version(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert resolve_engine_runtime_mode(path, "0.7.67", None) == "distributed"
|
||||
|
||||
def test_default_js(self, tmp_path: pathlib.Path) -> None:
|
||||
path = _write_config(tmp_path, python_version=None, node_version="20")
|
||||
assert resolve_engine_runtime_mode(path, "0.8.0", None) == "distributed"
|
||||
|
||||
# -- edge: version boundary ------------------------------------------------
|
||||
|
||||
def test_version_boundary_0_7_67_blocks_distributed(
|
||||
self, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
with pytest.raises(click.ClickException):
|
||||
resolve_engine_runtime_mode(path, "0.7.67", "distributed")
|
||||
|
||||
def test_version_boundary_0_7_68_allows_distributed(
|
||||
self, tmp_path: pathlib.Path
|
||||
) -> None:
|
||||
path = _write_config(tmp_path)
|
||||
assert (
|
||||
resolve_engine_runtime_mode(path, "0.7.68", "distributed") == "distributed"
|
||||
)
|
||||
Reference in New Issue
Block a user