Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
"""Tests for warn_deprecated_cwd_env_vars() migration warning."""
|
||||
|
||||
|
||||
def _write_env(monkeypatch, tmp_path, content):
|
||||
hermes_home = tmp_path / ".hermes"
|
||||
hermes_home.mkdir()
|
||||
(hermes_home / ".env").write_text(content, encoding="utf-8")
|
||||
monkeypatch.setenv("HERMES_HOME", str(hermes_home))
|
||||
return hermes_home
|
||||
|
||||
|
||||
class TestDeprecatedCwdWarning:
|
||||
"""Warn when MESSAGING_CWD or TERMINAL_CWD is set in .env."""
|
||||
|
||||
def test_process_environment_does_not_trigger_warning(
|
||||
self, monkeypatch, tmp_path, capsys
|
||||
):
|
||||
_write_env(monkeypatch, tmp_path, "# TERMINAL_CWD=.\n")
|
||||
monkeypatch.setenv("MESSAGING_CWD", "/process/message-path")
|
||||
monkeypatch.setenv("TERMINAL_CWD", "/process/terminal-path")
|
||||
|
||||
from hermes_cli.config import warn_deprecated_cwd_env_vars
|
||||
|
||||
warn_deprecated_cwd_env_vars()
|
||||
|
||||
assert capsys.readouterr().err == ""
|
||||
|
||||
def test_both_deprecated_vars_in_dotenv_warn(
|
||||
self, monkeypatch, tmp_path, capsys
|
||||
):
|
||||
_write_env(
|
||||
monkeypatch,
|
||||
tmp_path,
|
||||
"MESSAGING_CWD=/msg/path\nTERMINAL_CWD=/term/path\n",
|
||||
)
|
||||
monkeypatch.delenv("MESSAGING_CWD", raising=False)
|
||||
monkeypatch.delenv("TERMINAL_CWD", raising=False)
|
||||
|
||||
from hermes_cli.config import warn_deprecated_cwd_env_vars
|
||||
|
||||
warn_deprecated_cwd_env_vars()
|
||||
|
||||
captured = capsys.readouterr()
|
||||
assert "MESSAGING_CWD" in captured.err
|
||||
assert "TERMINAL_CWD" in captured.err
|
||||
assert "deprecated" in captured.err.lower()
|
||||
assert "config.yaml" in captured.err
|
||||
|
||||
def test_dotenv_terminal_cwd_warns_with_explicit_config(
|
||||
self, monkeypatch, tmp_path, capsys
|
||||
):
|
||||
hermes_home = _write_env(
|
||||
monkeypatch, tmp_path, "TERMINAL_CWD=/legacy/path\n"
|
||||
)
|
||||
(hermes_home / "config.yaml").write_text(
|
||||
"terminal:\n cwd: /current/path\n", encoding="utf-8"
|
||||
)
|
||||
|
||||
from hermes_cli.config import warn_deprecated_cwd_env_vars
|
||||
|
||||
warn_deprecated_cwd_env_vars()
|
||||
|
||||
assert "TERMINAL_CWD=/legacy/path" in capsys.readouterr().err
|
||||
|
||||
def test_commented_and_empty_dotenv_values_do_not_warn(
|
||||
self, monkeypatch, tmp_path, capsys
|
||||
):
|
||||
_write_env(
|
||||
monkeypatch,
|
||||
tmp_path,
|
||||
"# MESSAGING_CWD=/commented\nTERMINAL_CWD=\n",
|
||||
)
|
||||
monkeypatch.setenv("TERMINAL_CWD", "/process/bridge")
|
||||
|
||||
from hermes_cli.config import warn_deprecated_cwd_env_vars
|
||||
|
||||
warn_deprecated_cwd_env_vars()
|
||||
|
||||
assert capsys.readouterr().err == ""
|
||||
|
||||
def test_dotenv_read_failure_is_silent(self, monkeypatch, capsys):
|
||||
import hermes_cli.config as config_module
|
||||
|
||||
def raise_read_error():
|
||||
raise OSError("permission denied")
|
||||
|
||||
monkeypatch.setattr(config_module, "load_env", raise_read_error)
|
||||
|
||||
config_module.warn_deprecated_cwd_env_vars()
|
||||
|
||||
assert capsys.readouterr().err == ""
|
||||
Reference in New Issue
Block a user