summaryrefslogtreecommitdiff
path: root/test/test_plugin_help.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_plugin_help.py')
-rw-r--r--test/test_plugin_help.py154
1 files changed, 154 insertions, 0 deletions
diff --git a/test/test_plugin_help.py b/test/test_plugin_help.py
new file mode 100644
index 0000000..e107150
--- /dev/null
+++ b/test/test_plugin_help.py
@@ -0,0 +1,154 @@
+import pytest
+from nonebug import App
+
+from .utils import make_fake_message, make_fake_event
+
+
+async def test_main_help(app: App):
+ from ATRI.plugins.help import main_help
+
+ Message = make_fake_message()
+
+ async with app.test_matcher(main_help) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("菜单")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(
+ event,
+ """
+ 哦呀?~需要帮助?
+ 关于 -查看bot基本信息
+ 服务列表 -以查看所有可用服务
+ 帮助 [服务] -以查看对应服务帮助
+ Tip: 均需要at触发。@bot 菜单 以打开此页面
+ """,
+ True,
+ )
+
+
+async def test_about_me(app: App):
+ from ATRI import __version__
+ from ATRI.config import BotSelfConfig
+ from ATRI.plugins.help import about_me
+
+ temp_list = list()
+ for i in BotSelfConfig.nickname:
+ temp_list.append(i)
+ nickname = "、".join(map(str, temp_list))
+
+ Message = make_fake_message()
+
+ async with app.test_matcher(about_me) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("关于")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(
+ event,
+ f"""
+ 唔...是来认识咱的么
+ 可以称呼咱:{nickname}
+ 咱的型号是:{__version__}
+ 想进一步了解:
+ https://github.com/Kyomotoi/ATRI
+ """,
+ True,
+ )
+
+
+async def test_service_list(app: App):
+ import os
+
+ from ATRI.service import SERVICES_DIR
+ from ATRI.plugins.help import service_list
+
+ files = os.listdir(SERVICES_DIR)
+ temp_list = list()
+ for i in files:
+ service = i.replace(".json", "")
+ temp_list.append(service)
+
+ services = "、".join(map(str, temp_list))
+
+ Message = make_fake_message()
+
+ async with app.test_matcher(service_list) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("服务列表")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(
+ event,
+ f"""
+ 咱搭载了以下服务~
+ {services}
+ @bot 帮助 [服务] -以查看对应服务帮助
+ """,
+ True,
+ )
+
+
+async def test_service_info(app: App):
+ from ATRI.plugins.help import service_info
+
+ Message = make_fake_message()
+
+ async with app.test_matcher(service_info) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("帮助")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(event, "请检查是否输入错误...", True)
+
+ async with app.test_matcher(service_info) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("帮助 状态")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(
+ event,
+ """
+ 服务名:状态
+ 说明:
+ 检查咱自身状态
+
+ 可用命令:
+ /ping、/status
+ 是否全局启用:True
+ Tip: 帮助 [服务] [命令] 以查看对应命令详细信息
+ """,
+ True,
+ )
+
+ async with app.test_matcher(service_info) as ctx:
+ bot = ctx.create_bot()
+
+ msg = Message("帮助 状态 /ping")
+ event = make_fake_event(_message=msg, _to_me=True)()
+
+ ctx.receive_event(bot, event)
+ ctx.should_call_send(
+ event,
+ """
+ 命令:/ping
+ 类型:command
+ 说明:检测bot简单信息处理速度
+ 更多触发方式:[]
+ """,
+ True,
+ )