@@ -615,3 +615,49 @@ 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 .plugin_config import plugin_config
626
+ from nonebot_bison .sub_manager import add_sub_matcher , common_platform
627
+ from nonebot_bison .platform import platform_manager , unavailable_paltforms , _refresh_unavailable_platforms
628
+
629
+ mocker .patch .object (plugin_config , "bison_use_browser" , False )
630
+
631
+ _refresh_unavailable_platforms ()
632
+
633
+ async with app .test_matcher (add_sub_matcher ) as ctx :
634
+ bot = ctx .create_bot ()
635
+ event_1 = fake_group_message_event (
636
+ message = Message ("添加订阅" ),
637
+ sender = Sender (card = "" , nickname = "test" , role = "admin" ),
638
+ to_me = True ,
639
+ )
640
+ ctx .receive_event (bot , event_1 )
641
+ ctx .should_pass_rule ()
642
+ ctx .should_call_send (
643
+ event_1 ,
644
+ BotReply .add_reply_on_platform (platform_manager = platform_manager , common_platform = common_platform ),
645
+ True ,
646
+ )
647
+ event_2 = fake_group_message_event (
648
+ message = Message ("全部" ), sender = Sender (card = "" , nickname = "test" , role = "admin" )
649
+ )
650
+ ctx .receive_event (bot , event_2 )
651
+ ctx .should_rejected ()
652
+ ctx .should_call_send (
653
+ event_2 ,
654
+ BotReply .add_reply_on_platform_input_allplatform (platform_manager ),
655
+ True ,
656
+ )
657
+ event_3 = fake_group_message_event (message = Message ("bilibili" ), sender = fake_admin_user )
658
+ ctx .receive_event (bot , event_3 )
659
+ ctx .should_call_send (
660
+ event_3 ,
661
+ BotReply .add_reply_platform_unavailable ("bilibili" , unavailable_paltforms ["bilibili" ]),
662
+ True ,
663
+ )
0 commit comments