evals: default SUPERPOWERS_ROOT to parent of evals/ if unset

Adds _set_superpowers_root_default() to drill/cli.py, called at
module import after load_dotenv(). PROJECT_ROOT resolves to evals/
post-lift; its parent is the superpowers repo root, which is the
correct value for SUPERPOWERS_ROOT.

Existing env values are respected as overrides via os.environ.setdefault.

Tests:
- helper sets default when var is unset
- helper does not override when var is already set
This commit is contained in:
Jesse Vincent
2026-05-06 12:19:39 -07:00
committed by Drew Ritter
parent 3b412a3836
commit be0357f98a
2 changed files with 39 additions and 0 deletions

View File

@@ -59,3 +59,25 @@ class TestCompareCommand:
runner = CliRunner()
result = runner.invoke(main, ["compare", "nonexistent", "--sweep", "abc123"])
assert result.exit_code != 0 # No results dir, but flag is parsed
def test_set_superpowers_root_default_when_unset(monkeypatch, tmp_path):
"""When SUPERPOWERS_ROOT is unset, helper sets it to PROJECT_ROOT.parent."""
monkeypatch.delenv("SUPERPOWERS_ROOT", raising=False)
from drill.cli import _set_superpowers_root_default, PROJECT_ROOT
_set_superpowers_root_default()
import os
assert os.environ["SUPERPOWERS_ROOT"] == str(PROJECT_ROOT.parent)
def test_set_superpowers_root_default_respects_existing(monkeypatch):
"""When SUPERPOWERS_ROOT is already set, helper does not override."""
monkeypatch.setenv("SUPERPOWERS_ROOT", "/custom/path")
from drill.cli import _set_superpowers_root_default
_set_superpowers_root_default()
import os
assert os.environ["SUPERPOWERS_ROOT"] == "/custom/path"