mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-05-09 18:27:56 +08:00
♻️ rename scheduler_config -> site
This commit is contained in:
@@ -11,9 +11,8 @@ from .utils import get_file, get_json
|
||||
|
||||
@pytest.fixture()
|
||||
def arknights(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["arknights"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
@@ -45,8 +44,7 @@ def monster_siren_list_1():
|
||||
|
||||
@respx.mock
|
||||
async def test_url_parse(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
from nonebot_bison.platform.arknights import Arknights, BulletinData, BulletinListItem, ArkBulletinResponse
|
||||
|
||||
cid_router = respx.get("https://ak-webview.hypergryph.com/api/game/bulletin/1")
|
||||
@@ -114,8 +112,7 @@ async def test_url_parse(app: App):
|
||||
|
||||
@pytest.mark.asyncio()
|
||||
async def test_get_date_in_bulletin(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
from nonebot_bison.platform.arknights import Arknights, BulletinListItem
|
||||
|
||||
arknights = Arknights(ProcessContext(DefaultClientManager()))
|
||||
@@ -137,8 +134,7 @@ async def test_get_date_in_bulletin(app: App):
|
||||
@pytest.mark.asyncio()
|
||||
@respx.mock
|
||||
async def test_parse_with_breakline(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
from nonebot_bison.platform.arknights import Arknights, BulletinListItem
|
||||
|
||||
detail = get_json("arknights-detail-805")
|
||||
|
||||
@@ -23,9 +23,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
@pytest.fixture()
|
||||
def bilibili(app: App) -> "Bilibili":
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["bilibili"](ProcessContext(DefaultClientManager())) # type: ignore
|
||||
|
||||
|
||||
@@ -13,9 +13,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
@pytest.fixture()
|
||||
def bili_bangumi(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["bilibili-bangumi"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -8,9 +8,8 @@ from .utils import get_json
|
||||
|
||||
@pytest.fixture()
|
||||
def ff14(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["ff14"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -14,9 +14,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
@pytest.fixture()
|
||||
def ncm_artist(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["ncm-artist"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -14,9 +14,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
@pytest.fixture()
|
||||
def ncm_radio(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["ncm-radio"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -84,12 +84,12 @@ def mock_platform_without_cats_tags(app: App):
|
||||
@pytest.fixture()
|
||||
def mock_platform(app: App):
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import SchedulerConfig
|
||||
from nonebot_bison.utils import Site
|
||||
from nonebot_bison.platform.platform import NewMessage
|
||||
from nonebot_bison.types import Tag, Target, RawPost, Category
|
||||
|
||||
class MockPlatformSchedConf(SchedulerConfig):
|
||||
name = "mock"
|
||||
class MockSite(Site):
|
||||
name = "mock_site"
|
||||
schedule_type = "interval"
|
||||
schedule_setting = {"seconds": 100}
|
||||
|
||||
@@ -100,7 +100,7 @@ def mock_platform(app: App):
|
||||
is_common = True
|
||||
enable_tag = True
|
||||
has_target = True
|
||||
scheduler = MockPlatformSchedConf
|
||||
site = MockSite
|
||||
categories = {
|
||||
Category(1): "转发",
|
||||
Category(2): "视频",
|
||||
@@ -144,19 +144,19 @@ def mock_platform(app: App):
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def mock_scheduler_conf(app):
|
||||
from nonebot_bison.utils import SchedulerConfig
|
||||
def mock_site(app):
|
||||
from nonebot_bison.utils import Site
|
||||
|
||||
class MockPlatformSchedConf(SchedulerConfig):
|
||||
name = "mock"
|
||||
class MockSite(Site):
|
||||
name = "mock_site"
|
||||
schedule_type = "interval"
|
||||
schedule_setting = {"seconds": 100}
|
||||
|
||||
return MockPlatformSchedConf
|
||||
return MockSite
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def mock_platform_no_target(app: App, mock_scheduler_conf):
|
||||
def mock_platform_no_target(app: App, mock_site):
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.types import Tag, Target, RawPost, Category
|
||||
from nonebot_bison.platform.platform import NewMessage, CategoryNotSupport
|
||||
@@ -166,7 +166,7 @@ def mock_platform_no_target(app: App, mock_scheduler_conf):
|
||||
name = "Mock Platform"
|
||||
enabled = True
|
||||
is_common = True
|
||||
scheduler = mock_scheduler_conf
|
||||
site = mock_site
|
||||
enable_tag = True
|
||||
has_target = False
|
||||
categories = {Category(1): "转发", Category(2): "视频", Category(3): "不支持"}
|
||||
@@ -211,7 +211,7 @@ def mock_platform_no_target(app: App, mock_scheduler_conf):
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def mock_platform_no_target_2(app: App, mock_scheduler_conf):
|
||||
def mock_platform_no_target_2(app: App, mock_site):
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.platform.platform import NewMessage
|
||||
from nonebot_bison.types import Tag, Target, RawPost, Category
|
||||
@@ -220,7 +220,7 @@ def mock_platform_no_target_2(app: App, mock_scheduler_conf):
|
||||
platform_name = "mock_platform"
|
||||
name = "Mock Platform"
|
||||
enabled = True
|
||||
scheduler = mock_scheduler_conf
|
||||
site = mock_site
|
||||
is_common = True
|
||||
enable_tag = True
|
||||
has_target = False
|
||||
@@ -323,9 +323,8 @@ def mock_status_change(app: App):
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_new_message_target_without_cats_tags(mock_platform_without_cats_tags, user_info_factory):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.types import Target, SubUnit
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
res1 = await mock_platform_without_cats_tags(ProcessContext(DefaultClientManager())).fetch_new_post(
|
||||
SubUnit(Target("dummy"), [user_info_factory([1, 2], [])])
|
||||
@@ -345,9 +344,8 @@ async def test_new_message_target_without_cats_tags(mock_platform_without_cats_t
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_new_message_target(mock_platform, user_info_factory):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.types import Target, SubUnit
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
res1 = await mock_platform(ProcessContext(DefaultClientManager())).fetch_new_post(
|
||||
SubUnit(Target("dummy"), [user_info_factory([1, 2], [])])
|
||||
@@ -381,9 +379,8 @@ async def test_new_message_target(mock_platform, user_info_factory):
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_new_message_no_target(mock_platform_no_target, user_info_factory):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.types import Target, SubUnit
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
res1 = await mock_platform_no_target(ProcessContext(DefaultClientManager())).fetch_new_post(
|
||||
SubUnit(Target("dummy"), [user_info_factory([1, 2], [])])
|
||||
@@ -421,9 +418,8 @@ async def test_new_message_no_target(mock_platform_no_target, user_info_factory)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_status_change(mock_status_change, user_info_factory):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.types import Target, SubUnit
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
res1 = await mock_status_change(ProcessContext(DefaultClientManager())).fetch_new_post(
|
||||
SubUnit(Target("dummy"), [user_info_factory([1, 2], [])])
|
||||
@@ -462,10 +458,9 @@ async def test_group(
|
||||
mock_platform_no_target_2,
|
||||
user_info_factory,
|
||||
):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.types import Target, SubUnit
|
||||
from nonebot_bison.platform.platform import make_no_target_group
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
dummy = Target("dummy")
|
||||
|
||||
@@ -488,10 +483,10 @@ async def test_batch_fetch_new_message(app: App):
|
||||
from nonebot_plugin_saa import TargetQQGroup
|
||||
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import DefaultClientManager
|
||||
from nonebot_bison.platform.platform import NewMessage
|
||||
from nonebot_bison.utils.context import ProcessContext
|
||||
from nonebot_bison.types import Target, RawPost, SubUnit, UserSubInfo
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
|
||||
class BatchNewMessage(NewMessage):
|
||||
platform_name = "mock_platform"
|
||||
@@ -575,9 +570,9 @@ async def test_batch_fetch_compare_status(app: App):
|
||||
from nonebot_plugin_saa import TargetQQGroup
|
||||
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import DefaultClientManager
|
||||
from nonebot_bison.utils.context import ProcessContext
|
||||
from nonebot_bison.platform.platform import StatusChange
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.types import Target, RawPost, SubUnit, Category, UserSubInfo
|
||||
|
||||
class BatchStatusChange(StatusChange):
|
||||
|
||||
@@ -12,9 +12,8 @@ def test_cases():
|
||||
# 测试正反tag的判断情况
|
||||
@pytest.mark.asyncio
|
||||
async def test_filter_user_custom_tag(app: App, test_cases):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
bilibili = platform_manager["bilibili"](ProcessContext(DefaultClientManager()))
|
||||
for case in test_cases:
|
||||
@@ -25,9 +24,8 @@ async def test_filter_user_custom_tag(app: App, test_cases):
|
||||
# 测试正反tag的分离情况
|
||||
@pytest.mark.asyncio
|
||||
async def test_tag_separator(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
bilibili = platform_manager["bilibili"](ProcessContext(DefaultClientManager()))
|
||||
tags = ["~111", "222", "333", "~444", "555"]
|
||||
|
||||
@@ -34,9 +34,8 @@ def user_info_factory(app: App, dummy_user):
|
||||
|
||||
@pytest.fixture()
|
||||
def rss(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["rss"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -18,9 +18,8 @@ image_cdn_router = respx.route(host__regex=r"wx\d.sinaimg.cn", path__startswith=
|
||||
|
||||
@pytest.fixture()
|
||||
def weibo(app: App):
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return platform_manager["weibo"](ProcessContext(DefaultClientManager()))
|
||||
|
||||
|
||||
@@ -170,9 +170,8 @@ async def test_generate_msg(mock_platform):
|
||||
from nonebot_plugin_saa import Text, Image
|
||||
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
post: Post = await mock_platform(ProcessContext(DefaultClientManager())).parse(raw_post_list_1[0])
|
||||
assert post.platform.default_theme == "basic"
|
||||
@@ -201,9 +200,8 @@ async def test_msg_segments_convert(mock_platform):
|
||||
from nonebot_plugin_saa import Image
|
||||
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
plugin_config.bison_use_pic = True
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ from nonebug import App
|
||||
from pytest_mock import MockerFixture
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from nonebot_bison.utils.scheduler_config import SchedulerConfig
|
||||
from nonebot_bison.utils import Site
|
||||
|
||||
|
||||
async def get_schedule_times(scheduler_config: type["SchedulerConfig"], time: int) -> dict[str, int]:
|
||||
async def get_schedule_times(site: type["Site"], time: int) -> dict[str, int]:
|
||||
from nonebot_bison.scheduler import scheduler_dict
|
||||
|
||||
scheduler = scheduler_dict[scheduler_config]
|
||||
scheduler = scheduler_dict[site]
|
||||
res = {}
|
||||
for _ in range(time):
|
||||
schedulable = await scheduler.get_next_schedulable()
|
||||
@@ -28,8 +28,8 @@ async def test_scheduler_without_time(init_scheduler):
|
||||
from nonebot_bison.config import config
|
||||
from nonebot_bison.types import Target as T_Target
|
||||
from nonebot_bison.config.db_config import WeightConfig
|
||||
from nonebot_bison.platform.bilibili import BilibiliSite
|
||||
from nonebot_bison.scheduler.manager import init_scheduler
|
||||
from nonebot_bison.platform.bilibili import BilibiliSchedConf
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], [])
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili", [], [])
|
||||
@@ -40,12 +40,12 @@ async def test_scheduler_without_time(init_scheduler):
|
||||
|
||||
await init_scheduler()
|
||||
|
||||
static_res = await get_schedule_times(BilibiliSchedConf, 6)
|
||||
static_res = await get_schedule_times(BilibiliSite, 6)
|
||||
assert static_res["bilibili-t1"] == 1
|
||||
assert static_res["bilibili-t2"] == 2
|
||||
assert static_res["bilibili-bangumi-t2"] == 3
|
||||
|
||||
static_res = await get_schedule_times(BilibiliSchedConf, 6)
|
||||
static_res = await get_schedule_times(BilibiliSite, 6)
|
||||
assert static_res["bilibili-t1"] == 1
|
||||
assert static_res["bilibili-t2"] == 2
|
||||
assert static_res["bilibili-bangumi-t2"] == 3
|
||||
@@ -58,14 +58,14 @@ async def test_scheduler_batch_api(init_scheduler, mocker: MockerFixture):
|
||||
from nonebot_bison.types import UserSubInfo
|
||||
from nonebot_bison.scheduler import scheduler_dict
|
||||
from nonebot_bison.types import Target as T_Target
|
||||
from nonebot_bison.utils import DefaultClientManager
|
||||
from nonebot_bison.scheduler.manager import init_scheduler
|
||||
from nonebot_bison.platform.bilibili import BililiveSchedConf
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili-live", [], [])
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t2"), "target2", "bilibili-live", [], [])
|
||||
|
||||
mocker.patch.object(BililiveSchedConf, "client_man", DefaultClientManager)
|
||||
mocker.patch.object(BililiveSchedConf, "client_mgr", DefaultClientManager)
|
||||
|
||||
await init_scheduler()
|
||||
|
||||
@@ -96,8 +96,8 @@ async def test_scheduler_with_time(app: App, init_scheduler, mocker: MockerFixtu
|
||||
|
||||
from nonebot_bison.config import config, db_config
|
||||
from nonebot_bison.types import Target as T_Target
|
||||
from nonebot_bison.platform.bilibili import BilibiliSite
|
||||
from nonebot_bison.scheduler.manager import init_scheduler
|
||||
from nonebot_bison.platform.bilibili import BilibiliSchedConf
|
||||
from nonebot_bison.config.db_config import WeightConfig, TimeWeightConfig
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], [])
|
||||
@@ -118,19 +118,19 @@ async def test_scheduler_with_time(app: App, init_scheduler, mocker: MockerFixtu
|
||||
|
||||
mocker.patch.object(db_config, "_get_time", return_value=time(1, 30))
|
||||
|
||||
static_res = await get_schedule_times(BilibiliSchedConf, 6)
|
||||
static_res = await get_schedule_times(BilibiliSite, 6)
|
||||
assert static_res["bilibili-t1"] == 1
|
||||
assert static_res["bilibili-t2"] == 2
|
||||
assert static_res["bilibili-bangumi-t2"] == 3
|
||||
|
||||
static_res = await get_schedule_times(BilibiliSchedConf, 6)
|
||||
static_res = await get_schedule_times(BilibiliSite, 6)
|
||||
assert static_res["bilibili-t1"] == 1
|
||||
assert static_res["bilibili-t2"] == 2
|
||||
assert static_res["bilibili-bangumi-t2"] == 3
|
||||
|
||||
mocker.patch.object(db_config, "_get_time", return_value=time(10, 30))
|
||||
|
||||
static_res = await get_schedule_times(BilibiliSchedConf, 6)
|
||||
static_res = await get_schedule_times(BilibiliSite, 6)
|
||||
assert static_res["bilibili-t2"] == 6
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@ async def test_scheduler_add_new(init_scheduler):
|
||||
|
||||
from nonebot_bison.config import config
|
||||
from nonebot_bison.types import Target as T_Target
|
||||
from nonebot_bison.platform.bilibili import BilibiliSite
|
||||
from nonebot_bison.scheduler.manager import init_scheduler
|
||||
from nonebot_bison.platform.bilibili import BilibiliSchedConf
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], [])
|
||||
|
||||
@@ -148,7 +148,7 @@ async def test_scheduler_add_new(init_scheduler):
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=2345), T_Target("t1"), "target1", "bilibili", [], [])
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t2"), "target2", "bilibili", [], [])
|
||||
stat_res = await get_schedule_times(BilibiliSchedConf, 1)
|
||||
stat_res = await get_schedule_times(BilibiliSite, 1)
|
||||
assert stat_res["bilibili-t2"] == 1
|
||||
|
||||
|
||||
@@ -157,34 +157,34 @@ async def test_schedule_delete(init_scheduler):
|
||||
|
||||
from nonebot_bison.config import config
|
||||
from nonebot_bison.types import Target as T_Target
|
||||
from nonebot_bison.platform.bilibili import BilibiliSite
|
||||
from nonebot_bison.scheduler.manager import init_scheduler
|
||||
from nonebot_bison.platform.bilibili import BilibiliSchedConf
|
||||
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "target1", "bilibili", [], [])
|
||||
await config.add_subscribe(TargetQQGroup(group_id=123), T_Target("t2"), "target1", "bilibili", [], [])
|
||||
|
||||
await init_scheduler()
|
||||
|
||||
stat_res = await get_schedule_times(BilibiliSchedConf, 2)
|
||||
stat_res = await get_schedule_times(BilibiliSite, 2)
|
||||
assert stat_res["bilibili-t2"] == 1
|
||||
assert stat_res["bilibili-t1"] == 1
|
||||
|
||||
await config.del_subscribe(TargetQQGroup(group_id=123), T_Target("t1"), "bilibili")
|
||||
stat_res = await get_schedule_times(BilibiliSchedConf, 2)
|
||||
stat_res = await get_schedule_times(BilibiliSite, 2)
|
||||
assert stat_res["bilibili-t2"] == 2
|
||||
|
||||
|
||||
async def test_scheduler_skip_browser(mocker: MockerFixture):
|
||||
from nonebot_bison.scheduler.scheduler import Site
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.platform.platform import NewMessage
|
||||
from nonebot_bison.scheduler.scheduler import SchedulerConfig
|
||||
from nonebot_bison.scheduler import init_scheduler, scheduler_dict
|
||||
|
||||
mocker.patch.object(plugin_config, "bison_use_browser", False)
|
||||
|
||||
class MockPlatformSchedConf(SchedulerConfig):
|
||||
name = "mock"
|
||||
class MockSite(Site):
|
||||
name = "mock_site"
|
||||
schedule_type = "interval"
|
||||
schedule_setting = {"seconds": 100}
|
||||
require_browser = True
|
||||
@@ -196,26 +196,26 @@ async def test_scheduler_skip_browser(mocker: MockerFixture):
|
||||
is_common = True
|
||||
enable_tag = True
|
||||
has_target = True
|
||||
scheduler = MockPlatformSchedConf
|
||||
site = MockSite
|
||||
|
||||
mocker.patch.dict(platform_manager, {"mock_platform": MockPlatform})
|
||||
|
||||
await init_scheduler()
|
||||
|
||||
assert MockPlatformSchedConf not in scheduler_dict.keys()
|
||||
assert MockSite not in scheduler_dict.keys()
|
||||
|
||||
|
||||
async def test_scheduler_no_skip_not_require_browser(mocker: MockerFixture):
|
||||
from nonebot_bison.scheduler.scheduler import Site
|
||||
from nonebot_bison.platform import platform_manager
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.platform.platform import NewMessage
|
||||
from nonebot_bison.scheduler.scheduler import SchedulerConfig
|
||||
from nonebot_bison.scheduler import init_scheduler, scheduler_dict
|
||||
|
||||
mocker.patch.object(plugin_config, "bison_use_browser", False)
|
||||
|
||||
class MockPlatformSchedConf(SchedulerConfig):
|
||||
name = "mock"
|
||||
class MockSite(Site):
|
||||
name = "mock_site"
|
||||
schedule_type = "interval"
|
||||
schedule_setting = {"seconds": 100}
|
||||
|
||||
@@ -226,10 +226,10 @@ async def test_scheduler_no_skip_not_require_browser(mocker: MockerFixture):
|
||||
is_common = True
|
||||
enable_tag = True
|
||||
has_target = True
|
||||
scheduler = MockPlatformSchedConf
|
||||
site = MockSite
|
||||
|
||||
mocker.patch.dict(platform_manager, {"mock_platform": MockPlatform})
|
||||
|
||||
await init_scheduler()
|
||||
|
||||
assert MockPlatformSchedConf in scheduler_dict.keys()
|
||||
assert MockSite in scheduler_dict.keys()
|
||||
@@ -5,8 +5,7 @@ from nonebug.app import App
|
||||
|
||||
@respx.mock
|
||||
async def test_http_error(app: App):
|
||||
from nonebot_bison.utils import ProcessContext, http_client
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager, http_client
|
||||
|
||||
example_route = respx.get("https://example.com")
|
||||
example_route.mock(httpx.Response(403, json={"error": "gg"}))
|
||||
|
||||
@@ -67,8 +67,7 @@ def mock_platform(app: App):
|
||||
@pytest.fixture()
|
||||
def mock_post(app: App, mock_platform):
|
||||
from nonebot_bison.post import Post
|
||||
from nonebot_bison.utils import ProcessContext
|
||||
from nonebot_bison.utils.scheduler_config import DefaultClientManager
|
||||
from nonebot_bison.utils import ProcessContext, DefaultClientManager
|
||||
|
||||
return Post(
|
||||
m := mock_platform(ProcessContext(DefaultClientManager())),
|
||||
|
||||
Reference in New Issue
Block a user