@@ -615,3 +615,47 @@ async def test_add_with_bilibili_bangumi_target_parser(app: App, init_scheduler)
615
615
assert sub .tags == []
616
616
assert sub .target .platform_name == "bilibili-bangumi"
617
617
assert sub .target .target_name == "汉化日记 第三季"
618
+
619
+
620
+ @pytest .mark .asyncio
621
+ async def test_subscribe_platform_requires_browser (app : App , mocker : MockerFixture ):
622
+ from nonebot .adapters .onebot .v11 .event import Sender
623
+ from nonebot .adapters .onebot .v11 .message import Message
624
+
625
+ from nonebot_bison .platform import platform_manager
626
+ from nonebot_bison .plugin_config import plugin_config
627
+ from nonebot_bison .sub_manager import add_sub_matcher , common_platform
628
+
629
+ mocker .patch .object (plugin_config , "bison_use_browser" , False )
630
+
631
+ async with app .test_matcher (add_sub_matcher ) as ctx :
632
+ bot = ctx .create_bot ()
633
+ event_1 = fake_group_message_event (
634
+ message = Message ("添加订阅" ),
635
+ sender = Sender (card = "" , nickname = "test" , role = "admin" ),
636
+ to_me = True ,
637
+ )
638
+ ctx .receive_event (bot , event_1 )
639
+ ctx .should_pass_rule ()
640
+ ctx .should_call_send (
641
+ event_1 ,
642
+ BotReply .add_reply_on_platform (platform_manager = platform_manager , common_platform = common_platform ),
643
+ True ,
644
+ )
645
+ event_2 = fake_group_message_event (
646
+ message = Message ("全部" ), sender = Sender (card = "" , nickname = "test" , role = "admin" )
647
+ )
648
+ ctx .receive_event (bot , event_2 )
649
+ ctx .should_rejected ()
650
+ ctx .should_call_send (
651
+ event_2 ,
652
+ BotReply .add_reply_on_platform_input_allplatform (platform_manager ),
653
+ True ,
654
+ )
655
+ event_3 = fake_group_message_event (message = Message ("bilibili" ), sender = fake_admin_user )
656
+ ctx .receive_event (bot , event_3 )
657
+ ctx .should_call_send (
658
+ event_3 ,
659
+ BotReply .add_reply_need_use_browser ("bilibili" ),
660
+ True ,
661
+ )
0 commit comments