fix: encode harness prompts as utf-8
This commit is contained in:
@@ -259,6 +259,7 @@ class StepExecutor:
|
|||||||
input=prompt,
|
input=prompt,
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
|
encoding="utf-8",
|
||||||
timeout=1800,
|
timeout=1800,
|
||||||
)
|
)
|
||||||
except FileNotFoundError as exc:
|
except FileNotFoundError as exc:
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from scripts import execute
|
||||||
|
|
||||||
|
|
||||||
|
def test_invoke_codex_uses_utf8_for_unicode_prompt(tmp_path, monkeypatch):
|
||||||
|
phase_dir = tmp_path / "phases" / "unicode-phase"
|
||||||
|
phase_dir.mkdir(parents=True)
|
||||||
|
(phase_dir / "index.json").write_text(
|
||||||
|
json.dumps(
|
||||||
|
{
|
||||||
|
"project": "FESA Structural Solver",
|
||||||
|
"phase": "unicode-phase",
|
||||||
|
"steps": [{"step": 0, "name": "unicode", "status": "pending"}],
|
||||||
|
}
|
||||||
|
),
|
||||||
|
encoding="utf-8",
|
||||||
|
)
|
||||||
|
(phase_dir / "step0.md").write_text("Euler–Bernoulli 보", encoding="utf-8")
|
||||||
|
|
||||||
|
invocation = {}
|
||||||
|
|
||||||
|
def capture_run(command, **kwargs):
|
||||||
|
invocation["command"] = command
|
||||||
|
invocation["kwargs"] = kwargs
|
||||||
|
return subprocess.CompletedProcess(command, 0, stdout="", stderr="")
|
||||||
|
|
||||||
|
monkeypatch.setattr(execute, "ROOT", tmp_path)
|
||||||
|
monkeypatch.setattr(execute.subprocess, "run", capture_run)
|
||||||
|
|
||||||
|
executor = execute.StepExecutor("unicode-phase")
|
||||||
|
executor._invoke_codex({"step": 0, "name": "unicode"}, "승인된 설계 – ")
|
||||||
|
|
||||||
|
assert "Euler–Bernoulli 보" in invocation["kwargs"]["input"]
|
||||||
|
assert invocation["kwargs"]["encoding"] == "utf-8"
|
||||||
Reference in New Issue
Block a user