diff --git a/tests/test_screener.py b/tests/test_screener.py index 3cb46c1..f0aed44 100644 --- a/tests/test_screener.py +++ b/tests/test_screener.py @@ -454,3 +454,47 @@ class TestXiaozhiIntegration: import os # for integration tests + + +def test_screen_from_messages_empty(): + from psycho_screener.screener import screen_from_messages + result = screen_from_messages([]) + assert result["has_concern"] is False + assert result["severity"] == "none" + + +def test_screen_from_messages_bullying(): + from psycho_screener.screener import screen_from_messages + messages = [ + {"role": "user", "content": "今天小朋友欺负我了"}, + {"role": "assistant", "content": "发生了什么?"}, + {"role": "user", "content": "他们打我,我好害怕"}, + ] + result = screen_from_messages(messages) + assert result["has_concern"] is True + assert "bully" in result["concern_types"] + + +def test_screen_from_messages_meta_filter(): + from psycho_screener.screener import screen_from_messages + messages = [ + {"role": "user", "content": "今天被打了"}, + {"role": "assistant", "content": "嗯嗯"}, + {"role": "user", "content": "[满意]"}, + ] + result = screen_from_messages(messages) + # [满意] 应被过滤,只剩 "今天被打了" + assert result["has_concern"] is True + + +def test_screen_from_messages_mixed_roles(): + from psycho_screener.screener import screen_from_messages + messages = [ + {"role": "system", "content": "你是小智"}, + {"role": "assistant", "content": "好的主人"}, + {"role": "user", "content": "我不想上学了"}, + {"role": "assistant", "content": "为什么呢?"}, + {"role": "user", "content": "同学都笑我"}, + ] + result = screen_from_messages(messages) + assert result["has_concern"] is True