yannsay's picture
Deploy clean to build-small-hackathon org (32B Qwen, step-3 table)
aa1d0aa verified
Raw
History Blame Contribute Delete
1.8 kB
import pytest
def test_run_select_indicators_returns_dict():
from core.runner import run_skill_script
result = run_skill_script("select_indicators.py", ["--sectors", "WASH"])
assert isinstance(result, dict)
assert "selected" in result
assert "count_by_sector" in result
def test_run_select_indicators_sectors_present():
from core.runner import run_skill_script
result = run_skill_script(
"select_indicators.py",
["--sectors", "WASH", "Food Security", "Shelter"],
)
assert result["count_by_sector"].get("WASH", 0) > 0
def test_run_skill_script_raises_on_bad_script():
from core.runner import run_skill_script
with pytest.raises((RuntimeError, FileNotFoundError)):
run_skill_script("does_not_exist.py", [])
def test_run_select_indicators_unknown_sector_returns_empty():
from core.runner import run_skill_script
result = run_skill_script("select_indicators.py", ["--sectors", "INVALID_SECTOR_XYZ_NOT_REAL"])
assert isinstance(result, dict)
assert result.get("count_by_sector", {}).get("INVALID_SECTOR_XYZ_NOT_REAL", 0) == 0
def test_run_skill_script_raw_via_subprocess(tmp_path, monkeypatch):
"""run_skill_script_raw: stdout returned as string; non-zero exit raises."""
import core.runner as runner_mod
helper_ok = tmp_path / "ok.py"
helper_ok.write_text('import sys; sys.stdout.write("wrote /tmp/out.json")')
helper_fail = tmp_path / "fail.py"
helper_fail.write_text('import sys; sys.stderr.write("boom"); sys.exit(1)')
monkeypatch.setattr(runner_mod, "_SCRIPTS", tmp_path)
assert runner_mod.run_skill_script_raw("ok.py", []) == "wrote /tmp/out.json"
import pytest
with pytest.raises(RuntimeError, match="boom"):
runner_mod.run_skill_script_raw("fail.py", [])