Spaces:
Sleeping
Sleeping
| from agent import render | |
| def test_render_event_thought_and_revision(): | |
| normal = render.render_event({"kind": "thought", "text": "hmm", "revision": False, "step": 1}) | |
| assert "🧠" in normal and "hmm" in normal | |
| rev = render.render_event({"kind": "thought", "text": "rethink", "revision": True, "step": 2}) | |
| assert "↻" in rev and "revision" in rev | |
| def test_render_event_tool_call_observation_final(): | |
| tc = render.render_event({"kind": "tool_call", "tool": "calculator", | |
| "args": {"expression": "2+2"}, "step": 1}) | |
| assert "🔧" in tc and "calculator" in tc and "2+2" in tc | |
| weak = render.render_event({"kind": "observation", "tool": "wikipedia_search", | |
| "text": "may refer to", "weak": True, "step": 1}) | |
| assert "📄" in weak and "weak" in weak | |
| fin = render.render_event({"kind": "final", "text": "42", "step": 3}) | |
| assert "42" in fin | |
| def test_render_stats(): | |
| assert render.render_stats(steps=3, tool_calls=2, seconds=4.25) == "3 steps · 2 tool calls · 4.2s" | |
| def test_check_run_allowed(): | |
| ok, msg = render.check_run_allowed(0, cap=5) | |
| assert ok and msg == "" | |
| blocked, msg2 = render.check_run_allowed(5, cap=5) | |
| assert not blocked and "limit" in msg2.lower() | |
| def test_render_timeline_escapes_html(): | |
| html = render.render_timeline([{"kind": "observation", "tool": "web_get", | |
| "text": "<script>x</script>", "weak": False, "step": 1}]) | |
| assert "<script>" not in html | |
| def test_app_module_builds_blocks(monkeypatch): | |
| monkeypatch.setenv("GEMINI_API_KEY", "") # must not be needed at import time | |
| import importlib | |
| import app as app_module | |
| importlib.reload(app_module) | |
| demo = app_module.build_demo() | |
| assert demo is not None | |