diff options
Diffstat (limited to 'test/test_plugin_manage.py')
-rw-r--r-- | test/test_plugin_manage.py | 304 |
1 files changed, 50 insertions, 254 deletions
diff --git a/test/test_plugin_manage.py b/test/test_plugin_manage.py index 6d850c2..5081207 100644 --- a/test/test_plugin_manage.py +++ b/test/test_plugin_manage.py @@ -1,292 +1,88 @@ +from typing import Type, Union + import pytest from nonebug import App -from .utils import make_fake_message, make_fake_event - +from nonebot.matcher import Matcher +from nonebot.adapters.onebot.v11 import Bot, Message, MessageSegment -async def test_block_user(app: App): - from ATRI.plugins.manage import block_user +from ATRI.permission import toggle_master +from .utils import group_message_event - Message = make_fake_message() - async with app.test_matcher(block_user) as ctx: - bot = ctx.create_bot() - - msg = Message("封禁用户") - event = make_fake_event(_message=msg)() +async def __test_wrapper( + app: App, + test_matcher: Type[Matcher], + test_command: str, + test_arg: Union[str, MessageSegment], + test_reply: str, +): + async with app.test_matcher(test_matcher) as ctx: + bot = ctx.create_bot(base=Bot) + event = group_message_event(message=Message(test_command)) ctx.receive_event(bot, event) - ctx.should_call_send(event, "哪位?GKD!", True) + ctx.should_call_send(event, "要操作的目标是?", True) - msg = Message("114514") - event = make_fake_event(_message=msg)() + event = group_message_event(message=Message(test_arg)) ctx.receive_event(bot, event) - ctx.should_call_send(event, "用户 114514 危!", True) + ctx.should_call_send(event, test_reply, True) + ctx.should_finished() @pytest.mark.asyncio -async def test_unblock_user(app: App): - from ATRI.plugins.manage import unblock_user - - Message = make_fake_message() +async def test_manage(app: App): + await toggle_master("1145141919") - async with app.test_matcher(unblock_user) as ctx: - bot = ctx.create_bot() - - msg = Message("解封用户") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "哪位?GKD!", True) + from ATRI.plugins.manage import block_user - msg = Message("114514") - event = make_fake_event(_message=msg)() + await __test_wrapper(app, block_user, "封禁用户", "114514", "用户 114514 危!") - ctx.receive_event(bot, event) - ctx.should_call_send(event, "好欸! 114514 重获新生!", True) + from ATRI.plugins.manage import unblock_user + await __test_wrapper(app, unblock_user, "解封用户", "114514", "用户 114514 已解封") -async def test_block_group(app: App): from ATRI.plugins.manage import block_group - Message = make_fake_message() + await __test_wrapper(app, block_group, "封禁群", "114514", "群 114514 危!") - async with app.test_matcher(block_group) as ctx: - bot = ctx.create_bot() - - msg = Message("封禁群") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "哪位?GKD!", True) - - msg = Message("114514") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "群 114514 危!", True) - - -async def test_unblock_group(app: App): from ATRI.plugins.manage import unblock_group - Message = make_fake_message() + await __test_wrapper(app, unblock_group, "解封群", "114514", "群 114514 已解封") - async with app.test_matcher(unblock_group) as ctx: - bot = ctx.create_bot() + from ATRI.plugins.manage import toggle_global_service - msg = Message("解封群") - event = make_fake_event(_message=msg)() + await __test_wrapper(app, toggle_global_service, "全局控制", "涩图", "服务 涩图 已全局禁用") + await __test_wrapper(app, toggle_global_service, "全局控制", "涩图", "服务 涩图 已全局启用") - ctx.receive_event(bot, event) - ctx.should_call_send(event, "哪个群?GKD!", True) + from ATRI.plugins.manage import toggle_group_service - msg = Message("114514") - event = make_fake_event(_message=msg)() + await __test_wrapper(app, toggle_group_service, "控制", "涩图", "服务 涩图 已针对本群禁用") + await __test_wrapper(app, toggle_group_service, "控制", "涩图", "服务 涩图 已针对本群启用") - ctx.receive_event(bot, event) - ctx.should_call_send(event, "好欸! 114514 重获新生!", True) - - -async def test_global_block_service(app: App): - from ATRI.plugins.manage import global_block_service - - Message = make_fake_message() - - async with app.test_matcher(global_block_service) as ctx: - bot = ctx.create_bot() - - msg = Message("全局封禁") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "阿...是哪个服务呢", True) - - msg = Message("状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "服务 状态 已被禁用", True) - - -async def test_global_unblock_service(app: App): - from ATRI.plugins.manage import global_unblock_service - - Message = make_fake_message() - - async with app.test_matcher(global_unblock_service) as ctx: - bot = ctx.create_bot() - - msg = Message("全局启用") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "阿...是哪个服务呢", True) - - msg = Message("状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "服务 状态 已启用", True) - - -async def test_user_block_service(app: App): - from ATRI.plugins.manage import user_block_service - - Message = make_fake_message() - - async with app.test_matcher(user_block_service) as ctx: - bot = ctx.create_bot() - - msg = Message("对用户114514禁用状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "完成~已禁止用户 114514 使用 状态", True) - - -async def test_user_unblock_service(app: App): - from ATRI.plugins.manage import user_unblock_service - - Message = make_fake_message() - - async with app.test_matcher(user_unblock_service) as ctx: - bot = ctx.create_bot() - - msg = Message("对用户114514启用状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "完成~已允许用户 114514 使用 状态", True) - - -async def test_group_block_service(app: App): - from ATRI.plugins.manage import group_block_service - - Message = make_fake_message() - - async with app.test_matcher(group_block_service) as ctx: - bot = ctx.create_bot() - - msg = Message("禁用") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "阿...是哪个服务呢", True) - - msg = Message("状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "完成!~已禁止本群使用服务:状态", True) - - -async def test_group_unblock_service(app: App): - from ATRI.plugins.manage import group_unblock_service - - Message = make_fake_message() - - async with app.test_matcher(group_unblock_service) as ctx: - bot = ctx.create_bot() - - msg = Message("启用") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "阿...是哪个服务呢", True) - - msg = Message("状态") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "完成!~已允许本群使用服务:状态", True) - - -async def test_get_friend_add_list(app: App): - from ATRI.plugins.manage import get_friend_add_list + from ATRI.plugins.manage import track_error - Message = make_fake_message() + await __test_wrapper( + app, track_error, "追踪", "abcdefg", "操作 abcdefg 失败...原因:\n未找到对应ID的信息" + ) - async with app.test_matcher(get_friend_add_list) as ctx: - bot = ctx.create_bot() + from ATRI.plugins.manage import toggle_user_service - msg = Message("获取好友申请") - event = make_fake_event(_message=msg)() + async with app.test_matcher(toggle_user_service) as ctx: + bot = ctx.create_bot(base=Bot) + event = group_message_event(message=Message("对用户114514禁用涩图")) ctx.receive_event(bot, event) - ctx.should_call_send( - event, - """ - 申请人ID | 申请信息 | 申请码 - Tip: 使用 同意/拒绝好友 [申请码] 以决定 - """, - True, - ) - - -# @pytest.mark.asyncio -# async def test_approve_friend_add(app: App): -# from ATRI.plugins.manage import approve_friend_add - -# Message = make_fake_message() - -# async with app.test_matcher(approve_friend_add) as ctx: -# bot = ctx.create_bot() - -# msg = Message("同意好友") -# event = make_fake_event(_message=msg)() - -# ctx.receive_event(bot, event) -# ctx.should_call_send(event, "申请码GKD!", True) - -# msg = Message() + ctx.should_call_send(event, "已禁止用户 114514 使用 涩图", True) + ctx.should_finished() - -async def test_get_group_invite_list(app: App): - from ATRI.plugins.manage import get_group_invite_list - - Message = make_fake_message() - - async with app.test_matcher(get_group_invite_list) as ctx: - bot = ctx.create_bot() - - msg = Message("获取邀请列表") - event = make_fake_event(_message=msg)() + async with app.test_matcher(toggle_user_service) as ctx: + bot = ctx.create_bot(base=Bot) + event = group_message_event(message=Message("对用户114514启用涩图")) ctx.receive_event(bot, event) - ctx.should_call_send( - event, - """ - 申请人ID | 申请信息 | 申请码 - Tip: 使用 同意/拒绝邀请 [申请码] 以决定 - """, - True, - ) - + ctx.should_call_send(event, "已允许用户 114514 使用 涩图", True) + ctx.should_finished() -async def test_track_error(app: App): - from ATRI.plugins.manage import track_error - - Message = make_fake_message() - - async with app.test_matcher(track_error) as ctx: - bot = ctx.create_bot() - - msg = Message("/track") - event = make_fake_event(_message=msg)() - - ctx.receive_event(bot, event) - ctx.should_call_send(event, "请检查ID是否正确...", True) + await toggle_master("1145141919") |