From 54b5070b207b4e879d316e6a868a1e44d7af8e5d Mon Sep 17 00:00:00 2001 From: Azide Date: Mon, 21 Mar 2022 00:51:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=BA=9B=E5=8E=9F?= =?UTF-8?q?=E6=9C=89=E6=B5=8B=E8=AF=95=EF=BC=8C=E6=B7=BB=E5=8A=A0weibo?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E9=93=BE=E6=8E=A5=E8=AE=A2=E9=98=85=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_config_manager_add.py | 125 +++++++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 5 deletions(-) diff --git a/tests/test_config_manager_add.py b/tests/test_config_manager_add.py index cbb1764..e341929 100644 --- a/tests/test_config_manager_add.py +++ b/tests/test_config_manager_add.py @@ -412,7 +412,7 @@ async def test_add_with_get_id(app: App): @pytest.mark.asyncio @respx.mock -async def test_add_with_target_parser(app: App): +async def test_add_with_bilibili_target_parser(app: App): from nonebot.adapters.onebot.v11.event import Sender from nonebot.adapters.onebot.v11.message import Message from nonebot_bison.config import Config @@ -468,17 +468,30 @@ async def test_add_with_target_parser(app: App): Message(BotReply.add_reply_on_id(Bilibili)), True, ) - event_4_err = fake_group_message_event( + event_4_err1 = fake_group_message_event( message=Message( - "htps://space.bilbili.com/161775300?from=search&seid=13051774060625135297&spm_id_from=333.337.0.0" + "https://live.bilibili.com/5555734?broadcast_type=0&is_room_feed=1&spm_id_from=333.999.0.0" ), sender=fake_admin_user, ) - ctx.receive_event(bot, event_4_err) + ctx.receive_event(bot, event_4_err1) ctx.should_call_send( - event_4_err, BotReply.add_reply_on_target_parse_input_error, True + event_4_err1, BotReply.add_reply_on_target_parse_input_error, True ) ctx.should_rejected() + + event_4_err1 = fake_group_message_event( + message=Message( + "https://space.bilibili.com/ark161775300?from=search&seid=13051774060625135297&spm_id_from=333.337.0.0" + ), + sender=fake_admin_user, + ) + ctx.receive_event(bot, event_4_err1) + ctx.should_call_send( + event_4_err1, BotReply.add_reply_on_target_parse_input_error, True + ) + ctx.should_rejected() + event_4_ok = fake_group_message_event( message=Message( "https://space.bilibili.com/161775300?from=search&seid=13051774060625135297&spm_id_from=333.337.0.0" @@ -517,3 +530,105 @@ async def test_add_with_target_parser(app: App): assert sub["cats"] == [platform_manager["bilibili"].reverse_category["视频"]] assert sub["target_type"] == "bilibili" assert sub["target_name"] == "明日方舟" + + +@pytest.mark.asyncio +@respx.mock +async def test_add_with_weibo_target_parser(app: App): + from nonebot.adapters.onebot.v11.event import Sender + from nonebot.adapters.onebot.v11.message import Message + from nonebot_bison.config import Config + from nonebot_bison.config_manager import add_sub_matcher, common_platform + from nonebot_bison.platform import platform_manager + from nonebot_bison.platform.weibo import Weibo + + config = Config() + config.user_target.truncate() + + ak_list_router = respx.get( + "https://m.weibo.cn/api/container/getIndex?containerid=1005056279793937" + ) + ak_list_router.mock( + return_value=Response(200, json=get_json("weibo_ak_profile.json")) + ) + ak_list_bad_router = respx.get( + "https://m.weibo.cn/api/container/getIndex?containerid=100505000" + ) + ak_list_bad_router.mock( + return_value=Response(200, json=get_json("weibo_err_profile.json")) + ) + async with app.test_matcher(add_sub_matcher) as ctx: + bot = ctx.create_bot() + event_1 = fake_group_message_event( + message=Message("添加订阅"), + sender=Sender(card="", nickname="test", role="admin"), + to_me=True, + ) + ctx.receive_event(bot, event_1) + ctx.should_pass_rule() + ctx.should_call_send( + event_1, + Message( + BotReply.add_reply_on_platform( + platform_manager=platform_manager, common_platform=common_platform + ) + ), + True, + ) + event_2 = fake_group_message_event( + message=Message("weibo"), sender=fake_admin_user + ) + ctx.receive_event(bot, event_2) + ctx.should_call_send( + event_2, + Message(BotReply.add_reply_on_id(Weibo)), + True, + ) + event_3_err1 = fake_group_message_event( + message=Message( + "https://space.bilbili.com/161775300?from=search&seid=13051774060625135297&spm_id_from=333.337.0.0" + ), + sender=fake_admin_user, + ) + ctx.receive_event(bot, event_3_err1) + ctx.should_call_send( + event_3_err1, BotReply.add_reply_on_target_parse_input_error, True + ) + ctx.should_rejected() + + event_3_err2 = fake_group_message_event( + message=Message("https://weibo.com/arknights"), + sender=fake_admin_user, + ) + ctx.receive_event(bot, event_3_err2) + ctx.should_call_send( + event_3_err2, BotReply.add_reply_on_target_parse_input_error, True + ) + ctx.should_rejected() + + event_3_err3 = fake_group_message_event( + message=Message("https://weibo.com/u/ark6279793937"), + sender=fake_admin_user, + ) + ctx.receive_event(bot, event_3_err3) + ctx.should_call_send( + event_3_err3, BotReply.add_reply_on_target_parse_input_error, True + ) + ctx.should_rejected() + + event_3_ok = fake_group_message_event( + message=Message("http://weibo.com/u/6279793937"), sender=fake_admin_user + ) # 特意写成http测试正则 + ctx.receive_event(bot, event_3_ok) + ctx.should_call_send( + event_3_ok, + BotReply.add_reply_on_target_confirm( + "weibo", "明日方舟Arknights", "6279793937" + ), + True, + ) + ctx.should_call_send( + event_3_ok, + Message(BotReply.add_reply_on_cats(platform_manager, "weibo")), + True, + )