🚧 remove User type

This commit is contained in:
felinae98
2023-03-20 14:39:04 +08:00
parent d535f5212d
commit 4118329bb0
24 changed files with 298 additions and 221 deletions
+24 -25
View File
@@ -4,6 +4,7 @@ from nonebug.app import App
async def test_add_subscribe(app: App, init_scheduler):
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from sqlalchemy.ext.asyncio.session import AsyncSession
from sqlalchemy.sql.expression import select
@@ -12,8 +13,7 @@ async def test_add_subscribe(app: App, init_scheduler):
from nonebot_bison.types import Target as TTarget
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -21,15 +21,14 @@ async def test_add_subscribe(app: App, init_scheduler):
tags=[],
)
await config.add_subscribe(
user=234,
user_type="group",
TargetQQGroup(group_id=234),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
cats=[],
tags=[],
)
confs = await config.list_subscribe(123, "group")
confs = await config.list_subscribe(TargetQQGroup(group_id=123))
assert len(confs) == 1
conf: Subscribe = confs[0]
async with AsyncSession(get_engine()) as sess:
@@ -39,22 +38,23 @@ async def test_add_subscribe(app: App, init_scheduler):
related_target_obj = await sess.scalar(
select(Target).where(Target.id == conf.target_id)
)
assert related_user_obj.uid == 123
assert related_user_obj
assert related_target_obj
assert related_user_obj.user_target["group_id"] == 123
assert related_target_obj.target_name == "weibo_name"
assert related_target_obj.target == "weibo_id"
assert conf.target.target == "weibo_id"
assert conf.categories == []
await config.update_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
platform_name="weibo",
target_name="weibo_name2",
cats=[1],
tags=["tag"],
)
confs = await config.list_subscribe(123, "group")
confs = await config.list_subscribe(TargetQQGroup(group_id=123))
assert len(confs) == 1
conf: Subscribe = confs[0]
async with AsyncSession(get_engine()) as sess:
@@ -64,7 +64,9 @@ async def test_add_subscribe(app: App, init_scheduler):
related_target_obj = await sess.scalar(
select(Target).where(Target.id == conf.target_id)
)
assert related_user_obj.uid == 123
assert related_user_obj
assert related_target_obj
assert related_user_obj.user_target["group_id"] == 123
assert related_target_obj.target_name == "weibo_name2"
assert related_target_obj.target == "weibo_id"
assert conf.target.target == "weibo_id"
@@ -73,12 +75,13 @@ async def test_add_subscribe(app: App, init_scheduler):
async def test_add_dup_sub(init_scheduler):
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config.db_config import SubscribeDupException, config
from nonebot_bison.types import Target as TTarget
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -88,8 +91,7 @@ async def test_add_dup_sub(init_scheduler):
with pytest.raises(SubscribeDupException):
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -100,6 +102,7 @@ async def test_add_dup_sub(init_scheduler):
async def test_del_subsribe(init_scheduler):
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from sqlalchemy.ext.asyncio.session import AsyncSession
from sqlalchemy.sql.expression import select
from sqlalchemy.sql.functions import func
@@ -109,8 +112,7 @@ async def test_del_subsribe(init_scheduler):
from nonebot_bison.types import Target as TTarget
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -118,8 +120,7 @@ async def test_del_subsribe(init_scheduler):
tags=[],
)
await config.del_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
platform_name="weibo",
)
@@ -128,8 +129,7 @@ async def test_del_subsribe(init_scheduler):
assert (await sess.scalar(select(func.count()).select_from(Target))) == 1
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -138,8 +138,7 @@ async def test_del_subsribe(init_scheduler):
)
await config.add_subscribe(
user=124,
user_type="group",
TargetQQGroup(group_id=124),
target=TTarget("weibo_id"),
target_name="weibo_name_new",
platform_name="weibo",
@@ -148,8 +147,7 @@ async def test_del_subsribe(init_scheduler):
)
await config.del_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=TTarget("weibo_id"),
platform_name="weibo",
)
@@ -157,5 +155,6 @@ async def test_del_subsribe(init_scheduler):
async with AsyncSession(get_engine()) as sess:
assert (await sess.scalar(select(func.count()).select_from(Subscribe))) == 1
assert (await sess.scalar(select(func.count()).select_from(Target))) == 1
target: Target = await sess.scalar(select(Target))
target = await sess.scalar(select(Target))
assert target
assert target.target_name == "weibo_name_new"
+5 -3
View File
@@ -1,5 +1,6 @@
async def test_migration(use_legacy_config):
from nonebot_plugin_datastore.db import init_db
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config.config_legacy import Config
from nonebot_bison.config.db_config import config
@@ -34,7 +35,7 @@ async def test_migration(use_legacy_config):
)
# await data_migrate()
await init_db()
user123_config = await config.list_subscribe(123, "group")
user123_config = await config.list_subscribe(TargetQQGroup(group_id=123))
assert len(user123_config) == 2
for c in user123_config:
if c.target.target == "weibo_id":
@@ -47,7 +48,7 @@ async def test_migration(use_legacy_config):
assert c.target.target_name == "weibo_name2"
assert c.target.platform_name == "weibo"
assert c.tags == ["tag"]
user234_config = await config.list_subscribe(234, "group")
user234_config = await config.list_subscribe(TargetQQGroup(group_id=234))
assert len(user234_config) == 1
assert user234_config[0].categories == [1]
assert user234_config[0].target.target == "weibo_id"
@@ -57,6 +58,7 @@ async def test_migration(use_legacy_config):
async def test_migrate_dup(use_legacy_config):
from nonebot_plugin_datastore.db import init_db
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config.config_legacy import Config
from nonebot_bison.config.db_config import config
@@ -82,5 +84,5 @@ async def test_migrate_dup(use_legacy_config):
)
# await data_migrate()
await init_db()
user123_config = await config.list_subscribe(123, "group")
user123_config = await config.list_subscribe(TargetQQGroup(group_id=123))
assert len(user123_config) == 1
+24 -28
View File
@@ -6,14 +6,14 @@ from pytest_mock import MockerFixture
async def test_create_config(init_scheduler):
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config.db_config import TimeWeightConfig, WeightConfig, config
from nonebot_bison.config.db_model import Subscribe, Target, User
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -21,8 +21,7 @@ async def test_create_config(init_scheduler):
tags=[],
)
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -58,6 +57,7 @@ async def test_get_current_weight(init_scheduler, mocker: MockerFixture):
from datetime import time
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import db_config
from nonebot_bison.config.db_config import TimeWeightConfig, WeightConfig, config
@@ -65,8 +65,7 @@ async def test_get_current_weight(init_scheduler, mocker: MockerFixture):
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -74,8 +73,7 @@ async def test_get_current_weight(init_scheduler, mocker: MockerFixture):
tags=[],
)
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -83,8 +81,7 @@ async def test_get_current_weight(init_scheduler, mocker: MockerFixture):
tags=[],
)
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id1"),
target_name="weibo_name2",
platform_name="bilibili",
@@ -124,6 +121,7 @@ async def test_get_current_weight(init_scheduler, mocker: MockerFixture):
async def test_get_platform_target(app: App, init_scheduler):
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from sqlalchemy.ext.asyncio.session import AsyncSession
from sqlalchemy.sql.expression import select
@@ -133,8 +131,7 @@ async def test_get_platform_target(app: App, init_scheduler):
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -142,8 +139,7 @@ async def test_get_platform_target(app: App, init_scheduler):
tags=[],
)
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -151,8 +147,7 @@ async def test_get_platform_target(app: App, init_scheduler):
tags=[],
)
await config.add_subscribe(
user=245,
user_type="group",
TargetQQGroup(group_id=245),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -161,10 +156,14 @@ async def test_get_platform_target(app: App, init_scheduler):
)
res = await config.get_platform_target("weibo")
assert len(res) == 2
await config.del_subscribe(123, "group", T_Target("weibo_id1"), "weibo")
await config.del_subscribe(
TargetQQGroup(group_id=123), T_Target("weibo_id1"), "weibo"
)
res = await config.get_platform_target("weibo")
assert len(res) == 2
await config.del_subscribe(123, "group", T_Target("weibo_id"), "weibo")
await config.del_subscribe(
TargetQQGroup(group_id=123), T_Target("weibo_id"), "weibo"
)
res = await config.get_platform_target("weibo")
assert len(res) == 1
@@ -175,6 +174,7 @@ async def test_get_platform_target(app: App, init_scheduler):
async def test_get_platform_target_subscribers(app: App, init_scheduler):
from nonebot_plugin_datastore.db import get_engine
from nonebot_plugin_saa import TargetQQGroup
from sqlalchemy.ext.asyncio.session import AsyncSession
from sqlalchemy.sql.expression import select
@@ -182,12 +182,10 @@ async def test_get_platform_target_subscribers(app: App, init_scheduler):
from nonebot_bison.config.db_config import TimeWeightConfig, WeightConfig, config
from nonebot_bison.config.db_model import Subscribe, Target, User
from nonebot_bison.types import Target as T_Target
from nonebot_bison.types import User as T_User
from nonebot_bison.types import UserSubInfo
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id"),
target_name="weibo_name",
platform_name="weibo",
@@ -195,8 +193,7 @@ async def test_get_platform_target_subscribers(app: App, init_scheduler):
tags=["tag1"],
)
await config.add_subscribe(
user=123,
user_type="group",
TargetQQGroup(group_id=123),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -204,8 +201,7 @@ async def test_get_platform_target_subscribers(app: App, init_scheduler):
tags=["tag2"],
)
await config.add_subscribe(
user=245,
user_type="group",
TargetQQGroup(group_id=245),
target=T_Target("weibo_id1"),
target_name="weibo_name1",
platform_name="weibo",
@@ -215,9 +211,9 @@ async def test_get_platform_target_subscribers(app: App, init_scheduler):
res = await config.get_platform_target_subscribers("weibo", T_Target("weibo_id"))
assert len(res) == 1
assert res[0] == UserSubInfo(T_User(123, "group"), [1], ["tag1"])
assert res[0] == UserSubInfo(TargetQQGroup(group_id=123), [1], ["tag1"])
res = await config.get_platform_target_subscribers("weibo", T_Target("weibo_id1"))
assert len(res) == 2
assert UserSubInfo(T_User(123, "group"), [2], ["tag2"]) in res
assert UserSubInfo(T_User(245, "group"), [3], ["tag3"]) in res
assert UserSubInfo(TargetQQGroup(group_id=123), [2], ["tag2"]) in res
assert UserSubInfo(TargetQQGroup(group_id=245), [3], ["tag3"]) in res
+4 -2
View File
@@ -67,9 +67,11 @@ async def app(tmp_path: Path, request: pytest.FixtureRequest, mocker: MockerFixt
@pytest.fixture
def dummy_user_subinfo(app: App):
from nonebot_bison.types import User, UserSubInfo
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
from nonebot_bison.types import UserSubInfo
user = TargetQQGroup(group_id=123)
return UserSubInfo(user=user, categories=[], tags=[])
+16 -8
View File
@@ -16,9 +16,11 @@ def bili_live(app: App):
@pytest.fixture
def dummy_only_open_user_subinfo(app: App):
from nonebot_bison.types import User, UserSubInfo
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
from nonebot_bison.types import UserSubInfo
user = TargetQQGroup(group_id=123)
return UserSubInfo(user=user, categories=[1], tags=[])
@@ -68,9 +70,11 @@ async def test_fetch_bililive_only_live_open(bili_live, dummy_only_open_user_sub
@pytest.fixture
def dummy_only_title_user_subinfo(app: App):
from nonebot_bison.types import User, UserSubInfo
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
from nonebot_bison.types import UserSubInfo
user = TargetQQGroup(group_id=123)
return UserSubInfo(user=user, categories=[2], tags=[])
@@ -128,9 +132,11 @@ async def test_fetch_bililive_only_title_change(
@pytest.fixture
def dummy_only_close_user_subinfo(app: App):
from nonebot_bison.types import User, UserSubInfo
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
from nonebot_bison.types import UserSubInfo
user = TargetQQGroup(group_id=123)
return UserSubInfo(user=user, categories=[3], tags=[])
@@ -187,9 +193,11 @@ async def test_fetch_bililive_only_close(bili_live, dummy_only_close_user_subinf
@pytest.fixture
def dummy_bililive_user_subinfo(app: App):
from nonebot_bison.types import User, UserSubInfo
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
from nonebot_bison.types import UserSubInfo
user = TargetQQGroup(group_id=123)
return UserSubInfo(user=user, categories=[1, 2, 3], tags=[])
+2 -2
View File
@@ -24,9 +24,9 @@ raw_post_list_2 = raw_post_list_1 + [
@pytest.fixture
def dummy_user(app: App):
from nonebot_bison.types import User
from nonebot_plugin_saa import TargetQQGroup
user = User(123, "group")
user = TargetQQGroup(group_id=123)
return user
+22 -12
View File
@@ -12,6 +12,8 @@ if typing.TYPE_CHECKING:
async def get_schedule_times(
scheduler_config: Type["SchedulerConfig"], time: int
) -> dict[str, int]:
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.scheduler import scheduler_dict
scheduler = scheduler_dict[scheduler_config]
@@ -25,6 +27,8 @@ async def get_schedule_times(
async def test_scheduler_without_time(init_scheduler):
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config.db_config import WeightConfig
from nonebot_bison.platform.bilibili import BilibiliSchedConf
@@ -32,13 +36,13 @@ async def test_scheduler_without_time(init_scheduler):
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
123, "group", T_Target("t1"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target1", "bilibili-live", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili-live", [], []
)
await config.update_time_weight_config(
@@ -62,6 +66,8 @@ async def test_scheduler_without_time(init_scheduler):
async def test_scheduler_with_time(app: App, init_scheduler, mocker: MockerFixture):
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config, db_config
from nonebot_bison.config.db_config import TimeWeightConfig, WeightConfig
from nonebot_bison.platform.bilibili import BilibiliSchedConf
@@ -69,13 +75,13 @@ async def test_scheduler_with_time(app: App, init_scheduler, mocker: MockerFixtu
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
123, "group", T_Target("t1"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target1", "bilibili-live", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili-live", [], []
)
await config.update_time_weight_config(
@@ -113,38 +119,42 @@ async def test_scheduler_with_time(app: App, init_scheduler, mocker: MockerFixtu
async def test_scheduler_add_new(init_scheduler):
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.platform.bilibili import BilibiliSchedConf
from nonebot_bison.scheduler.manager import init_scheduler
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
123, "group", T_Target("t1"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], []
)
await init_scheduler()
await config.add_subscribe(
2345, "group", T_Target("t1"), "target1", "bilibili", [], []
TargetQQGroup(group_id=2345), T_Target("t1"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target2", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target2", "bilibili", [], []
)
stat_res = await get_schedule_times(BilibiliSchedConf, 1)
assert stat_res["bilibili-t2"] == 1
async def test_schedule_delete(init_scheduler):
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.platform.bilibili import BilibiliSchedConf
from nonebot_bison.scheduler.manager import init_scheduler
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
123, "group", T_Target("t1"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], []
)
await config.add_subscribe(
123, "group", T_Target("t2"), "target1", "bilibili", [], []
TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili", [], []
)
await init_scheduler()
@@ -153,6 +163,6 @@ async def test_schedule_delete(init_scheduler):
assert stat_res["bilibili-t2"] == 1
assert stat_res["bilibili-t1"] == 1
await config.del_subscribe(123, "group", T_Target("t1"), "bilibili")
await config.del_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "bilibili")
stat_res = await get_schedule_times(BilibiliSchedConf, 2)
assert stat_res["bilibili-t2"] == 2
+3 -3
View File
@@ -279,6 +279,7 @@ async def test_abort_add_on_tag(app: App, init_scheduler):
async def test_abort_del_sub(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.bot import Bot
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import del_sub_matcher
@@ -286,8 +287,7 @@ async def test_abort_del_sub(app: App, init_scheduler):
from nonebot_bison.types import Target as T_Target
await config.add_subscribe(
10000,
"group",
TargetQQGroup(group_id=10000),
T_Target("6279793937"),
"明日方舟Arknights",
"weibo",
@@ -316,5 +316,5 @@ async def test_abort_del_sub(app: App, init_scheduler):
ctx.receive_event(bot, event_abort)
ctx.should_call_send(event_abort, "删除中止", True)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert subs
+10 -5
View File
@@ -64,6 +64,7 @@ async def test_configurable_at_me_false(app: App):
async def test_add_with_target(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.event import Sender
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import add_sub_matcher, common_platform
@@ -171,7 +172,7 @@ async def test_add_with_target(app: App, init_scheduler):
event_6_ok, BotReply.add_reply_subscribe_success("明日方舟Arknights"), True
)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 1
sub = subs[0]
assert sub.target.target == "6279793937"
@@ -188,6 +189,7 @@ async def test_add_with_target(app: App, init_scheduler):
async def test_add_with_target_no_cat(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.event import Sender
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import add_sub_matcher, common_platform
@@ -233,7 +235,7 @@ async def test_add_with_target_no_cat(app: App, init_scheduler):
event_4_ok, BotReply.add_reply_subscribe_success("塞壬唱片-MSR"), True
)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 1
sub = subs[0]
assert sub.target.target == "32540734"
@@ -248,6 +250,7 @@ async def test_add_with_target_no_cat(app: App, init_scheduler):
async def test_add_no_target(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.event import Sender
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import add_sub_matcher, common_platform
@@ -284,7 +287,7 @@ async def test_add_no_target(app: App, init_scheduler):
event_4, BotReply.add_reply_subscribe_success("明日方舟游戏信息"), True
)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 1
sub = subs[0]
assert sub.target.target == "default"
@@ -334,6 +337,7 @@ async def test_platform_name_err(app: App):
async def test_add_with_get_id(app: App):
from nonebot.adapters.onebot.v11.event import Sender
from nonebot.adapters.onebot.v11.message import Message, MessageSegment
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import add_sub_matcher, common_platform
@@ -407,7 +411,7 @@ async def test_add_with_get_id(app: App):
True,
)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 0
@@ -416,6 +420,7 @@ async def test_add_with_get_id(app: App):
async def test_add_with_bilibili_target_parser(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.event import Sender
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import add_sub_matcher, common_platform
@@ -524,7 +529,7 @@ async def test_add_with_bilibili_target_parser(app: App, init_scheduler):
event_6, BotReply.add_reply_subscribe_success("明日方舟"), True
)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 1
sub = subs[0]
assert sub.target.target == "161775300"
+5 -5
View File
@@ -10,6 +10,7 @@ from .utils import fake_admin_user, fake_group_message_event
@pytest.mark.asyncio
async def test_query_sub(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import query_sub_matcher
@@ -17,8 +18,7 @@ async def test_query_sub(app: App, init_scheduler):
from nonebot_bison.types import Target
await config.add_subscribe(
10000,
"group",
TargetQQGroup(group_id=10000),
Target("6279793937"),
"明日方舟Arknights",
"weibo",
@@ -40,6 +40,7 @@ async def test_query_sub(app: App, init_scheduler):
async def test_del_sub(app: App, init_scheduler):
from nonebot.adapters.onebot.v11.bot import Bot
from nonebot.adapters.onebot.v11.message import Message
from nonebot_plugin_saa import TargetQQGroup
from nonebot_bison.config import config
from nonebot_bison.config_manager import del_sub_matcher
@@ -47,8 +48,7 @@ async def test_del_sub(app: App, init_scheduler):
from nonebot_bison.types import Target
await config.add_subscribe(
10000,
"group",
TargetQQGroup(group_id=10000),
Target("6279793937"),
"明日方舟Arknights",
"weibo",
@@ -83,7 +83,7 @@ async def test_del_sub(app: App, init_scheduler):
ctx.receive_event(bot, event_1_ok)
ctx.should_call_send(event_1_ok, "删除成功", True)
ctx.should_finished()
subs = await config.list_subscribe(10000, "group")
subs = await config.list_subscribe(TargetQQGroup(group_id=10000))
assert len(subs) == 0
+14 -14
View File
@@ -30,8 +30,8 @@ async def test_refresh_bots(app: App) -> None:
from nonebot import get_driver
from nonebot.adapters.onebot.v11 import Bot as BotV11
from nonebot.adapters.onebot.v12 import Bot as BotV12
from nonebot_plugin_saa import TargetQQGroup, TargetQQPrivate
from nonebot_bison.types import User
from nonebot_bison.utils.get_bot import get_bot, get_groups, refresh_bots
async with app.test_api() as ctx:
@@ -44,13 +44,13 @@ async def test_refresh_bots(app: App) -> None:
ctx.should_call_api("get_group_list", {}, [{"group_id": 1}])
ctx.should_call_api("get_friend_list", {}, [{"user_id": 2}])
assert get_bot(User(1, "group")) is None
assert get_bot(User(2, "private")) is None
assert get_bot(TargetQQGroup(group_id=1)) is None
assert get_bot(TargetQQPrivate(user_id=2)) is None
await refresh_bots()
assert get_bot(User(1, "group")) == botv11
assert get_bot(User(2, "private")) == botv11
assert get_bot(TargetQQGroup(group_id=1)) == botv11
assert get_bot(TargetQQPrivate(user_id=2)) == botv11
# 测试获取群列表
ctx.should_call_api("get_group_list", {}, [{"group_id": 3}])
@@ -66,8 +66,8 @@ async def test_get_bot_two_bots(app: App) -> None:
from nonebot import get_driver
from nonebot.adapters.onebot.v11 import Bot as BotV11
from nonebot.adapters.onebot.v12 import Bot as BotV12
from nonebot_plugin_saa import TargetQQGroup, TargetQQPrivate
from nonebot_bison.types import User
from nonebot_bison.utils.get_bot import get_bot, get_groups, refresh_bots
async with app.test_api() as ctx:
@@ -85,14 +85,14 @@ async def test_get_bot_two_bots(app: App) -> None:
await refresh_bots()
assert get_bot(User(0, "group")) is None
assert get_bot(User(1, "group")) == bot1
assert get_bot(User(2, "group")) in (bot1, bot2)
assert get_bot(User(3, "group")) == bot2
assert get_bot(User(0, "private")) is None
assert get_bot(User(1, "private")) == bot1
assert get_bot(User(2, "private")) in (bot1, bot2)
assert get_bot(User(3, "private")) == bot2
assert get_bot(TargetQQGroup(group_id=0)) is None
assert get_bot(TargetQQGroup(group_id=1)) == bot1
assert get_bot(TargetQQGroup(group_id=2)) in (bot1, bot2)
assert get_bot(TargetQQGroup(group_id=3)) == bot2
assert get_bot(TargetQQPrivate(user_id=0)) is None
assert get_bot(TargetQQPrivate(user_id=1)) == bot1
assert get_bot(TargetQQPrivate(user_id=2)) in (bot1, bot2)
assert get_bot(TargetQQPrivate(user_id=3)) == bot2
ctx.should_call_api("get_group_list", {}, [{"group_id": 1}, {"group_id": 2}])
ctx.should_call_api("get_group_list", {}, [{"group_id": 2}, {"group_id": 3}])