mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-05 11:26:43 +08:00
55 lines
2.3 KiB
Python
55 lines
2.3 KiB
Python
import pytest
|
|
import typing
|
|
import respx
|
|
from httpx import Response
|
|
import feedparser
|
|
|
|
if typing.TYPE_CHECKING:
|
|
import sys
|
|
sys.path.append('./src/plugins')
|
|
import nonebot_hk_reporter
|
|
|
|
from .utils import get_json, get_file
|
|
|
|
@pytest.fixture
|
|
def arknights(plugin_module: 'nonebot_hk_reporter'):
|
|
return plugin_module.platform.platform_manager['arknights']
|
|
|
|
@pytest.fixture(scope='module')
|
|
def arknights_list_0():
|
|
return get_json('arknights_list_0.json')
|
|
|
|
@pytest.fixture(scope='module')
|
|
def arknights_list_1():
|
|
return get_json('arknights_list_1.json')
|
|
|
|
@pytest.mark.asyncio
|
|
@respx.mock
|
|
async def test_fetch_new(arknights, dummy_user_subinfo, arknights_list_0, arknights_list_1):
|
|
ak_list_router = respx.get("https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/announcement.meta.json")
|
|
detail_router = respx.get("https://ak-fs.hypergryph.com/announce/IOS/announcement/675.html")
|
|
version_router = respx.get('https://ak-conf.hypergryph.com/config/prod/official/IOS/version')
|
|
preannouncement_router = respx.get('https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/preannouncement.meta.json')
|
|
ak_list_router.mock(return_value=Response(200, json=arknights_list_0))
|
|
detail_router.mock(return_value=Response(200, text=get_file('arknights-detail-675.html')))
|
|
version_router.mock(return_value=Response(200, json=get_json('arknights-version-0.json')))
|
|
preannouncement_router.mock(return_value=Response(200, json=get_json('arknights-pre-0.json')))
|
|
target = ''
|
|
res = await arknights.fetch_new_post(target, [dummy_user_subinfo])
|
|
assert(ak_list_router.called)
|
|
assert(len(res) == 0)
|
|
assert(not detail_router.called)
|
|
mock_data = arknights_list_1
|
|
ak_list_router.mock(return_value=Response(200, json=mock_data))
|
|
res3 = await arknights.fetch_new_post(target, [dummy_user_subinfo])
|
|
assert(len(res3[0][1]) == 1)
|
|
assert(detail_router.called)
|
|
post = res3[0][1][0]
|
|
assert(post.target_type == 'arknights')
|
|
assert(post.text == '')
|
|
assert(post.url == '')
|
|
assert(post.target_name == '明日方舟游戏内公告')
|
|
assert(len(post.pics) == 1)
|
|
assert(post.pics == ['https://ak-fs.hypergryph.com/announce/images/20210623/e6f49aeb9547a2278678368a43b95b07.jpg'])
|
|
r = await post.generate_messages()
|