Spaces:
Paused
Paused
| from unittest.mock import patch | |
| from tools.environments.local import LocalEnvironment | |
| class TestLocalTempDir: | |
| def test_uses_os_tmpdir_for_session_artifacts(self, monkeypatch): | |
| monkeypatch.setenv("TMPDIR", "/data/data/com.termux/files/usr/tmp") | |
| monkeypatch.delenv("TMP", raising=False) | |
| monkeypatch.delenv("TEMP", raising=False) | |
| with patch.object(LocalEnvironment, "init_session", autospec=True, return_value=None): | |
| env = LocalEnvironment(cwd=".", timeout=10) | |
| assert env.get_temp_dir() == "/data/data/com.termux/files/usr/tmp" | |
| assert env._snapshot_path == f"/data/data/com.termux/files/usr/tmp/hermes-snap-{env._session_id}.sh" | |
| assert env._cwd_file == f"/data/data/com.termux/files/usr/tmp/hermes-cwd-{env._session_id}.txt" | |
| def test_prefers_backend_env_tmpdir_override(self, monkeypatch): | |
| monkeypatch.delenv("TMPDIR", raising=False) | |
| monkeypatch.delenv("TMP", raising=False) | |
| monkeypatch.delenv("TEMP", raising=False) | |
| with patch.object(LocalEnvironment, "init_session", autospec=True, return_value=None): | |
| env = LocalEnvironment( | |
| cwd=".", | |
| timeout=10, | |
| env={"TMPDIR": "/data/data/com.termux/files/home/.cache/hermes-tmp/"}, | |
| ) | |
| assert env.get_temp_dir() == "/data/data/com.termux/files/home/.cache/hermes-tmp" | |
| assert env._snapshot_path == ( | |
| f"/data/data/com.termux/files/home/.cache/hermes-tmp/hermes-snap-{env._session_id}.sh" | |
| ) | |
| assert env._cwd_file == ( | |
| f"/data/data/com.termux/files/home/.cache/hermes-tmp/hermes-cwd-{env._session_id}.txt" | |
| ) | |
| def test_falls_back_to_tempfile_when_tmp_missing(self, monkeypatch): | |
| monkeypatch.delenv("TMPDIR", raising=False) | |
| monkeypatch.delenv("TMP", raising=False) | |
| monkeypatch.delenv("TEMP", raising=False) | |
| with patch("tools.environments.local.os.path.isdir", return_value=False), \ | |
| patch("tools.environments.local.os.access", return_value=False), \ | |
| patch("tools.environments.local.tempfile.gettempdir", return_value="/cache/tmp"), \ | |
| patch.object(LocalEnvironment, "init_session", autospec=True, return_value=None): | |
| env = LocalEnvironment(cwd=".", timeout=10) | |
| assert env.get_temp_dir() == "/cache/tmp" | |
| assert env._snapshot_path == f"/cache/tmp/hermes-snap-{env._session_id}.sh" | |
| assert env._cwd_file == f"/cache/tmp/hermes-cwd-{env._session_id}.txt" | |