|
16 | 16 | SPEC.loader.exec_module(cli) |
17 | 17 |
|
18 | 18 |
|
| 19 | +def test_partial_model_cache_downloads(monkeypatch, tmp_path): |
| 20 | + model = tmp_path / "model" |
| 21 | + model.mkdir() |
| 22 | + (model / "config.json").write_text("{}") |
| 23 | + calls = [] |
| 24 | + monkeypatch.setattr(cli, "BACKEND", tmp_path) |
| 25 | + monkeypatch.setattr(cli, "run", lambda *a, **k: calls.append(a)) |
| 26 | + cli.download_vlm() |
| 27 | + assert calls |
| 28 | + |
| 29 | + |
| 30 | +@pytest.mark.parametrize("windows", [True, False]) |
| 31 | +def test_frontend_launch_resolves_tool(monkeypatch, windows): |
| 32 | + import urllib.request |
| 33 | + from types import SimpleNamespace |
| 34 | + |
| 35 | + calls = [] |
| 36 | + monkeypatch.setattr(cli, "IS_WIN", windows) |
| 37 | + monkeypatch.setattr(cli, "is_port_open", lambda _: False) |
| 38 | + monkeypatch.setattr(cli.time, "sleep", lambda _: None) |
| 39 | + monkeypatch.setattr(cli.shutil, "which", lambda _: "pnpm.cmd" if windows else "/bin/pnpm") |
| 40 | + monkeypatch.setattr(urllib.request, "urlopen", lambda *a, **k: None) |
| 41 | + monkeypatch.setattr( |
| 42 | + cli.subprocess, |
| 43 | + "Popen", |
| 44 | + lambda cmd, **k: calls.append(cmd) or SimpleNamespace(poll=lambda: None), |
| 45 | + ) |
| 46 | + cli.start_frontend() |
| 47 | + expected = ["cmd", "/d", "/c", "pnpm.cmd"] if windows else ["/bin/pnpm"] |
| 48 | + assert calls[0] == [*expected, "dev", "--port", str(cli.FRONTEND_PORT)] |
| 49 | + |
| 50 | + |
19 | 51 | def test_failed_migration_stops_setup(monkeypatch, capsys): |
20 | 52 | monkeypatch.setattr(cli, "ALEMBIC", sys.executable) |
21 | 53 | with pytest.raises(subprocess.CalledProcessError): |
|
0 commit comments