From f3cc93c699f62eeee5a79cf489525b109998043c Mon Sep 17 00:00:00 2001 From: yanyongyu <42488585+yanyongyu@users.noreply.github.com> Date: Sun, 30 Jan 2022 00:05:01 +0800 Subject: [PATCH] :white_check_mark: add more tests --- tests/test_adapters/test_message.py | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index 56fbab7c..a5d88df0 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -1,3 +1,5 @@ +from pydantic import ValidationError, parse_obj_as + from utils import make_fake_message @@ -22,6 +24,21 @@ def test_segment_add(): ) +def test_segment_validate(): + Message = make_fake_message() + MessageSegment = Message.get_segment_class() + + assert parse_obj_as( + MessageSegment, {"type": "text", "data": {"text": "text"}} + ) == MessageSegment.text("text") + + try: + parse_obj_as(MessageSegment, "some str") + assert False + except ValidationError: + assert True + + def test_message_add(): Message = make_fake_message() MessageSegment = Message.get_segment_class() @@ -78,3 +95,24 @@ def test_message_getitem(): assert message.get("image", 1) == Message([message["image", 0]]) assert message.count("image") == 2 + + +def test_message_validate(): + Message = make_fake_message() + MessageSegment = Message.get_segment_class() + + assert parse_obj_as(Message, "text") == Message([MessageSegment.text("text")]) + + assert parse_obj_as(Message, {"type": "text", "data": {"text": "text"}}) == Message( + [MessageSegment.text("text")] + ) + + assert parse_obj_as( + Message, [{"type": "text", "data": {"text": "text"}}] + ) == Message([MessageSegment.text("text")]) + + try: + parse_obj_as(Message, object()) + assert False + except ValidationError: + assert True