From 32f2a62c211a89bb6961b8265e30ea240197b978 Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 20:48:21 +0800 Subject: [PATCH 1/6] fix `MessageSegment.__contains__` --- nonebot/internal/adapter/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nonebot/internal/adapter/message.py b/nonebot/internal/adapter/message.py index d83a6893c06c..0d1e25b0786d 100644 --- a/nonebot/internal/adapter/message.py +++ b/nonebot/internal/adapter/message.py @@ -285,7 +285,7 @@ def __contains__(self, value: Union[TMS, str]) -> bool: 消息内是否存在给定消息段或给定类型的消息段 """ if isinstance(value, str): - return bool(next((seg for seg in self if seg.type == value), None)) + return next((seg for seg in self if seg.type == value), None) is not None return super().__contains__(value) def has(self, value: Union[TMS, str]) -> bool: From 9cdd2604c996f857eb799dc6d5248ad85b44df15 Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 21:22:33 +0800 Subject: [PATCH 2/6] add test case --- tests/test_adapters/test_message.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index 7c20fbe7242f..f13c57b02fa1 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -278,3 +278,7 @@ def test_message_exclude(): FakeMessageSegment.text("test4"), ] ) + + +def test_message_contains(): + assert "text" in FakeMessage(PatchedFakeMessageSegment.text("")) From 6c12b1931a72c1500d59bfa105c7c4bcdd55bda2 Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 21:24:09 +0800 Subject: [PATCH 3/6] fix --- tests/test_adapters/test_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index f13c57b02fa1..249df0938e4e 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -281,4 +281,4 @@ def test_message_exclude(): def test_message_contains(): - assert "text" in FakeMessage(PatchedFakeMessageSegment.text("")) + assert "text" in FakeMessage(FakeMessageSegment.text("")) From 04b1390548e70b576fcee117d9801c391cd1b3c4 Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 21:26:37 +0800 Subject: [PATCH 4/6] fix --- tests/test_adapters/test_message.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index 249df0938e4e..aef79adb8ad3 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -192,6 +192,8 @@ def test_message_contains(): assert message.has("foo") is False assert "foo" not in message + assert "text" in FakeMessage(FakeMessageSegment.text("")) + def test_message_only(): message = FakeMessage( @@ -278,7 +280,3 @@ def test_message_exclude(): FakeMessageSegment.text("test4"), ] ) - - -def test_message_contains(): - assert "text" in FakeMessage(FakeMessageSegment.text("")) From efb64a120bdf654b76ca618fe34b9921ad67223a Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 21:32:23 +0800 Subject: [PATCH 5/6] add test case --- tests/test_adapters/test_message.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index aef79adb8ad3..ad598ed72de2 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -192,7 +192,9 @@ def test_message_contains(): assert message.has("foo") is False assert "foo" not in message - assert "text" in FakeMessage(FakeMessageSegment.text("")) + msg_with_empty_seg = FakeMessage([FakeMessageSegment.text("")]) + assert msg_with_empty_seg.has("text") is True + assert "text" in msg_with_empty_seg def test_message_only(): From ded7f03368eb1a30b6819988887f70ece0e01b7a Mon Sep 17 00:00:00 2001 From: student_2333 Date: Sun, 11 Feb 2024 23:53:57 +0800 Subject: [PATCH 6/6] commit suggestion Co-authored-by: Ju4tCode <42488585+yanyongyu@users.noreply.github.com> --- tests/test_adapters/test_message.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_adapters/test_message.py b/tests/test_adapters/test_message.py index ad598ed72de2..9ca21c393747 100644 --- a/tests/test_adapters/test_message.py +++ b/tests/test_adapters/test_message.py @@ -192,6 +192,7 @@ def test_message_contains(): assert message.has("foo") is False assert "foo" not in message + assert not bool(FakeMessageSegment.text("")) msg_with_empty_seg = FakeMessage([FakeMessageSegment.text("")]) assert msg_with_empty_seg.has("text") is True assert "text" in msg_with_empty_seg