mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-08 12:53:00 +08:00
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from datetime import datetime
|
||
|
||
import feedparser
|
||
import pytest
|
||
import respx
|
||
from httpx import Response
|
||
from nonebug.app import App
|
||
from pytz import timezone
|
||
|
||
from .utils import get_file, get_json
|
||
|
||
|
||
@pytest.fixture
|
||
def bili_live(app: App):
|
||
from nonebot_bison.platform import platform_manager
|
||
|
||
return platform_manager["bilibili-live"]
|
||
|
||
|
||
@pytest.mark.asyncio
|
||
@respx.mock
|
||
async def test_fetch_bilibili_live_status(bili_live, dummy_user_subinfo):
|
||
mock_bili_live_status = get_json("bili_live_status.json")
|
||
|
||
bili_live_router = respx.get(
|
||
"https://api.bilibili.com/x/space/acc/info?mid=13164144"
|
||
)
|
||
bili_live_router.mock(return_value=Response(200, json=mock_bili_live_status))
|
||
target = "13164144"
|
||
res = await bili_live.fetch_new_post(target, [dummy_user_subinfo])
|
||
assert bili_live_router.called
|
||
assert len(res) == 0
|
||
mock_bili_live_status["data"]["live_room"]["liveStatus"] = 1
|
||
bili_live_router.mock(return_value=Response(200, json=mock_bili_live_status))
|
||
res2 = await bili_live.fetch_new_post(target, [dummy_user_subinfo])
|
||
post = res2[0][1][0]
|
||
assert post.target_type == "Bilibili直播"
|
||
assert post.text == "魔法Zc目录 直播中:\n【Zc】早朝危机合约!\n\n小伙伴们速速前来围观!"
|
||
assert post.url == "https://live.bilibili.com/3044248"
|
||
assert post.target_name == "魔法Zc目录"
|