diff --git a/src/plugins/nonebot_bison/post/custom_post.py b/src/plugins/nonebot_bison/post/custom_post.py index 800637f..38a8e03 100644 --- a/src/plugins/nonebot_bison/post/custom_post.py +++ b/src/plugins/nonebot_bison/post/custom_post.py @@ -32,7 +32,7 @@ class _CustomPost(BasePost): md += "{}
".format(message_segment.data.get("text", "")) elif message_segment.type == "image": try: - # 先尝试获取file的值,没有在尝试获取url的值,都没有则为空 + # 先尝试获取file的值,没有再尝试获取url的值,都没有则为空 pic_res = message_segment.data.get( "file", message_segment.data.get("url", "") ) diff --git a/tests/platforms/static/custom_post_pic.jpg b/tests/platforms/static/custom_post_pic.jpg new file mode 100644 index 0000000..e3828e8 Binary files /dev/null and b/tests/platforms/static/custom_post_pic.jpg differ diff --git a/tests/test_custom_post.py b/tests/test_custom_post.py index 6f7c101..04423b2 100644 --- a/tests/test_custom_post.py +++ b/tests/test_custom_post.py @@ -1,8 +1,10 @@ import base64 import hashlib -import logging +from pathlib import Path import pytest +import respx +from httpx import Response from nonebot.adapters.onebot.v11.message import MessageSegment from nonebug.app import App @@ -41,10 +43,21 @@ def test_gene_md(app: App, expect_md, ms_list): assert cp_md == expect_md +@respx.mock @pytest.mark.asyncio async def test_gene_pic(app: App, ms_list, pic_hash): from nonebot_bison.post.custom_post import CustomPost + pic_router = respx.get( + "http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg" + ) + + pic_path = Path(__file__).parent / "platforms" / "static" / "custom_post_pic.jpg" + with open(pic_path, mode="rb") as f: + mock_pic = f.read() + + pic_router.mock(return_value=Response(200, stream=mock_pic)) + cp = CustomPost(message_segments=ms_list) cp_pic_bytes: list[MessageSegment] = await cp.generate_pic_messages()