mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-02 00:56:10 +08:00
commit
3a245e17f6
1
.gitignore
vendored
1
.gitignore
vendored
@ -22,6 +22,7 @@
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
venv_test/
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
@ -12,7 +12,7 @@ from nonebot.internal.params import ArgStr
|
||||
from nonebot.internal.rule import Rule
|
||||
from nonebot.log import logger
|
||||
from nonebot.matcher import Matcher
|
||||
from nonebot.params import Depends, EventMessage, EventPlainText, EventToMe
|
||||
from nonebot.params import Depends, EventMessage, EventPlainText, EventToMe, EventType
|
||||
from nonebot.permission import SUPERUSER
|
||||
from nonebot.rule import to_me
|
||||
from nonebot.typing import T_State
|
||||
@ -294,11 +294,16 @@ del_sub_matcher = on_command(
|
||||
del_sub_matcher.handle()(set_target_user_info)
|
||||
do_del_sub(del_sub_matcher)
|
||||
|
||||
group_manage_matcher = on_command("群管理")
|
||||
group_manage_matcher = on_command("群管理", rule=to_me(), permission=SUPERUSER, priority=4)
|
||||
|
||||
|
||||
@group_manage_matcher.handle()
|
||||
async def send_group_list(bot: Bot, state: T_State):
|
||||
async def send_group_list(bot: Bot, event: GroupMessageEvent, state: T_State):
|
||||
await group_manage_matcher.finish(Message("该功能只支持私聊使用,请私聊Bot"))
|
||||
|
||||
|
||||
@group_manage_matcher.handle()
|
||||
async def send_group_list(bot: Bot, event: PrivateMessageEvent, state: T_State):
|
||||
groups = await bot.call_api("get_group_list")
|
||||
res_text = "请选择需要管理的群:\n"
|
||||
group_number_idx = {}
|
||||
|
@ -1,9 +1,11 @@
|
||||
import pytest
|
||||
from nonebug import App
|
||||
|
||||
from .utils import fake_admin_user, fake_private_message_event, fake_superuser
|
||||
from .utils import fake_group_message_event, fake_private_message_event, fake_superuser
|
||||
|
||||
|
||||
async def test_query(app: App):
|
||||
@pytest.mark.asyncio
|
||||
async def test_query_with_superuser_private(app: App):
|
||||
from nonebot.adapters.onebot.v11.bot import Bot
|
||||
from nonebot.adapters.onebot.v11.message import Message
|
||||
from nonebot_bison.config_manager import group_manage_matcher
|
||||
@ -11,7 +13,10 @@ async def test_query(app: App):
|
||||
async with app.test_matcher(group_manage_matcher) as ctx:
|
||||
bot = ctx.create_bot(base=Bot)
|
||||
event = fake_private_message_event(
|
||||
message=Message("群管理"), sender=fake_superuser
|
||||
message=Message("群管理"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event)
|
||||
ctx.should_pass_rule()
|
||||
@ -23,23 +28,57 @@ async def test_query(app: App):
|
||||
event, Message("请选择需要管理的群:\n1. 101 - test group\n请输入左侧序号"), True
|
||||
)
|
||||
event_1_err = fake_private_message_event(
|
||||
message=Message("0"), sender=fake_superuser
|
||||
message=Message("0"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event_1_err)
|
||||
ctx.should_rejected()
|
||||
ctx.should_call_send(event_1_err, "请输入正确序号", True)
|
||||
ctx.should_rejected()
|
||||
event_1_ok = fake_private_message_event(
|
||||
message=Message("1"), sender=fake_superuser
|
||||
message=Message("1"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event_1_ok)
|
||||
ctx.should_call_send(event_1_ok, "请输入需要使用的命令:添加订阅,查询订阅,删除订阅", True)
|
||||
event_2_err = fake_private_message_event(
|
||||
message=Message("222"), sender=fake_superuser
|
||||
message=Message("222"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event_2_err)
|
||||
ctx.should_rejected()
|
||||
ctx.should_call_send(event_2_err, "请输入正确的命令", True)
|
||||
ctx.should_rejected()
|
||||
event_2_ok = fake_private_message_event(
|
||||
message=Message("查询订阅"), sender=fake_superuser
|
||||
message=Message("查询订阅"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event_2_ok)
|
||||
ctx.should_pass_rule()
|
||||
ctx.should_pass_permission()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_query_with_superuser_group_tome(app: App):
|
||||
from nonebot.adapters.onebot.v11.bot import Bot
|
||||
from nonebot.adapters.onebot.v11.message import Message
|
||||
from nonebot_bison.config_manager import group_manage_matcher
|
||||
|
||||
async with app.test_matcher(group_manage_matcher) as ctx:
|
||||
bot = ctx.create_bot(base=Bot)
|
||||
event = fake_group_message_event(
|
||||
message=Message("群管理"),
|
||||
sender=fake_superuser,
|
||||
to_me=True,
|
||||
user_id=fake_superuser.user_id,
|
||||
)
|
||||
ctx.receive_event(bot, event)
|
||||
ctx.should_pass_rule()
|
||||
ctx.should_pass_permission()
|
||||
ctx.should_call_send(event, Message("该功能只支持私聊使用,请私聊Bot"), True)
|
||||
|
Loading…
x
Reference in New Issue
Block a user