test: add golden render for all formats
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
|||||||
|
stream error: Failed to load optional config file ~/.codex/local.toml (ENOENT); continuing with defaults
|
||||||
|
thread started
|
||||||
|
turn started
|
||||||
|
2. ✓ searched: python jsonlines parser handle unknown fields
|
||||||
|
stream error: Web search disabled by policy; returned cached results only
|
||||||
|
3. ▸ tool: github.search_issues
|
||||||
|
3. ✓ tool: github.search_issues
|
||||||
|
4. ▸ `pytest -q`
|
||||||
|
4. ✗ `pytest -q` (exit 1)
|
||||||
|
5. ✓ updated `src/compute_answer.py`, `tests/test_beta.py`
|
||||||
|
6. ▸ `pytest -q`
|
||||||
|
6. ✓ `pytest -q`
|
||||||
|
7. Root cause: compute_answer() returned 0. Updated logic to return 42 for the valid input path. Re-ran pytest to confirm all tests pass.
|
||||||
|
assistant:
|
||||||
|
I found the failing assertion in tests/test_beta.py and updated src/compute_answer.py to return the expected value (42). After the change, `pytest -q` reports 12 passed.
|
||||||
|
turn completed
|
||||||
|
turn started
|
||||||
|
9. ▸ `npm test`
|
||||||
|
9. ✗ `npm test` (exit 127)
|
||||||
|
10. ✓ warning: Command `npm` not found in PATH (exit 127).
|
||||||
|
turn failed: Aborted: required dependency `npm` is missing; cannot continue.
|
||||||
|
stream error: codex exec exited non-zero (1) after turn.failed
|
||||||
|
thread started
|
||||||
|
turn started
|
||||||
|
assistant:
|
||||||
|
Legacy schema example: hello (item_type=assistant_message).
|
||||||
|
2. ✓ `echo legacy`
|
||||||
|
turn completed
|
||||||
|
thread started
|
||||||
|
turn started
|
||||||
|
2. ✓ updated `README.md`
|
||||||
|
turn completed
|
||||||
@@ -11,7 +11,10 @@ def _loads(lines: str) -> list[dict]:
|
|||||||
|
|
||||||
FIXTURE_PATH = Path(__file__).resolve().parent / "fixtures" / "codex.jsonl"
|
FIXTURE_PATH = Path(__file__).resolve().parent / "fixtures" / "codex.jsonl"
|
||||||
ALL_FORMATS_FIXTURE_PATH = (
|
ALL_FORMATS_FIXTURE_PATH = (
|
||||||
Path(__file__).resolve().parent.parent / "codex_exec_json_all_formats.jsonl"
|
Path(__file__).resolve().parent / "fixtures" / "codex_exec_json_all_formats.jsonl"
|
||||||
|
)
|
||||||
|
ALL_FORMATS_GOLDEN_PATH = (
|
||||||
|
Path(__file__).resolve().parent / "fixtures" / "codex_exec_json_all_formats.txt"
|
||||||
)
|
)
|
||||||
|
|
||||||
SAMPLE_STREAM = """
|
SAMPLE_STREAM = """
|
||||||
@@ -91,6 +94,18 @@ def test_render_event_cli_all_formats_fixture() -> None:
|
|||||||
assert any("Legacy schema example" in line for line in out)
|
assert any("Legacy schema example" in line for line in out)
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_event_cli_all_formats_golden() -> None:
|
||||||
|
events = _loads(ALL_FORMATS_FIXTURE_PATH.read_text(encoding="utf-8"))
|
||||||
|
last_turn = None
|
||||||
|
out: list[str] = []
|
||||||
|
for evt in events:
|
||||||
|
last_turn, lines = render_event_cli(evt, last_turn)
|
||||||
|
out.extend(lines)
|
||||||
|
|
||||||
|
expected = ALL_FORMATS_GOLDEN_PATH.read_text(encoding="utf-8").rstrip("\n")
|
||||||
|
assert "\n".join(out) == expected
|
||||||
|
|
||||||
|
|
||||||
def test_progress_renderer_renders_progress_and_final() -> None:
|
def test_progress_renderer_renders_progress_and_final() -> None:
|
||||||
r = ExecProgressRenderer(max_actions=5)
|
r = ExecProgressRenderer(max_actions=5)
|
||||||
for evt in _loads(SAMPLE_STREAM):
|
for evt in _loads(SAMPLE_STREAM):
|
||||||
|
|||||||
Reference in New Issue
Block a user