"""作业 3 事件解析测试。 来源:workflow/20261016/事故信息采集2025118.json 中的客户端标记。 关键规则:普通自然语言(如“拍好了”“继续”)不是事件。 """ import pytest from src.agent.events import ClientEvent, parse_client_event @pytest.mark.parametrize( ("text", "expected"), [ ("【开始】", ClientEvent.SESSION_START), ("【继续办理】", ClientEvent.CONTINUE), ("【拍摄完成】", ClientEvent.PHOTO_DONE), ("【用户无回复】", ClientEvent.NO_REPLY), ("【客户端连续3次拍摄识别失败:图片过于模糊】", ClientEvent.PHOTO_FAILED_3X), ("【客户端连续3次拍摄识别失败:摄像头启动失败】", ClientEvent.PHOTO_FAILED_3X), ("【客户端连续3次拍摄识别失败:未识别到完整车牌】", ClientEvent.PHOTO_FAILED_3X), (" 【拍摄完成】 ", ClientEvent.PHOTO_DONE), # 容忍首尾空白 ], ) def test_markers_parse_to_events(text, expected): assert parse_client_event(text) is expected @pytest.mark.parametrize( "text", [ "拍好了", # 普通“拍好了”不等于拍摄完成事件 "我已经拍完了", "继续", "你好", "", " ", ], ) def test_plain_text_is_not_an_event(text): assert parse_client_event(text) is None