from pathlib import Path from gpu_rent.varsfile import apply_vars_file, parse_vars_file, split_args def test_parse_vars_file(tmp_path: Path): path = tmp_path / "gpu-rent.vars" path.write_text( "# comment\n" "GPU_RENT_DEFAULT_ARGS=up --yes\n" "export UPDATE_GIT=false\n" "QUOTED=\"a b\"\n", encoding="utf-8", ) data = parse_vars_file(path) assert data["GPU_RENT_DEFAULT_ARGS"] == "up --yes" assert data["UPDATE_GIT"] == "false" assert data["QUOTED"] == "a b" def test_apply_does_not_override(tmp_path: Path, monkeypatch): path = tmp_path / "gpu-rent.vars" path.write_text("FOO=from-file\n", encoding="utf-8") monkeypatch.setenv("FOO", "from-env") apply_vars_file(path, override=False) import os assert os.environ["FOO"] == "from-env" def test_split_args(): assert split_args("up --yes --no-update") == ["up", "--yes", "--no-update"]