Files
ai-video-fullstack/backend/tests/test_user_input.py

58 lines
1.9 KiB
Python

import unittest
from services.pipecat.processors import UserInputError, parse_user_input
class UserInputParserTests(unittest.TestCase):
def test_parses_text_and_current_camera_frame(self):
value = parse_user_input(
{
"type": "user-input",
"schema_version": 1,
"input_id": "input_1",
"parts": [
{"type": "input_text", "text": "帮我看看"},
{
"type": "input_image",
"source": {
"type": "camera_frame",
"frame": "current",
},
},
],
"options": {
"run_immediately": True,
"interrupt": True,
},
}
)
self.assertIsNotNone(value)
self.assertEqual(value.text, "帮我看看")
self.assertTrue(value.has_camera_frame)
self.assertEqual(value.transcript_text, "帮我看看\n已发送一张图片")
def test_rejects_legacy_and_unsupported_image_sources(self):
self.assertIsNone(parse_user_input({"type": "user-text", "text": "旧协议"}))
with self.assertRaisesRegex(UserInputError, "当前摄像头"):
parse_user_input(
{
"type": "user-input",
"schema_version": 1,
"input_id": "input_2",
"parts": [
{
"type": "input_image",
"source": {
"type": "uploaded_asset",
"asset_id": "asset_1",
},
}
],
}
)
if __name__ == "__main__":
unittest.main()