from pathlib import Path ROOT=Path(__file__).resolve().parents[1] def test_version(): assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1" def test_route_guard_exists_before_agent_dispatch(): chat=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert "def _route_ocean_missing_date_clarification" in chat assert "async def _clarification_stream" in chat assert "clarification=_route_ocean_missing_date_clarification" in chat assert chat.index("clarification=_route_ocean_missing_date_clarification") < chat.index("stream=_stream_with_heartbeat") def test_named_region_is_declared_satisfied(): chat=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert "区域和经纬度范围已经确定,不需要再次提供坐标" in chat assert 'missing_fields":["date"]' in chat assert '"guard":"api-entry-v456"' in chat def test_region_registry_is_used(): chat=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert "from services.region_registry import resolve_region" in chat assert "region=resolve_region(q)" in chat def test_followup_date_can_continue_context(): chat=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert 'thread_compressed_contexts[x.thread_id]=spec' in chat assert 'thread_last_data_requests[x.thread_id]' in chat