mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-07 12:23:00 +08:00
62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
import pytest
|
|
import respx
|
|
from httpx import Response
|
|
from nonebug.app import App
|
|
|
|
from .utils import get_file, get_json
|
|
|
|
|
|
@pytest.fixture
|
|
def mcbbsnews(app: App):
|
|
from nonebot_bison.platform import platform_manager
|
|
|
|
return platform_manager["mcbbsnews"]
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def raw_post_list():
|
|
return get_json("mcbbsnews_raw_post_list.json")
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def javanews_post_0():
|
|
return get_file("mcbbsnews_java_post-0.txt")
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def javanews_post_1():
|
|
return get_file("mcbbsnews_java_post-1.txt")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_javanews_parser(mcbbsnews, raw_post_list, javanews_post):
|
|
post = await mcbbsnews.parse(raw_post_list[3])
|
|
assert post.text == javanews_post
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@respx.mock
|
|
async def test_fetch_new(mcbbsnews, dummy_user_subinfo, javanews_post_1):
|
|
news_router = respx.get("https://www.mcbbs.net/forum-news-1.html")
|
|
news_router.mock(
|
|
return_value=Response(200, text=get_file("mcbbsnews_post_list_html-0.html"))
|
|
)
|
|
new_post = respx.get("https://www.mcbbs.net/thread-1340927-1-1.html")
|
|
new_post.mock(
|
|
return_value=Response(200, text=get_file("mcbbsnews_new_post_html.html"))
|
|
)
|
|
target = ""
|
|
res = await mcbbsnews.fetch_new_post(target, [dummy_user_subinfo])
|
|
assert news_router.called
|
|
assert len(res) == 0
|
|
news_router.mock(
|
|
return_value=Response(200, text=get_file("mcbbsnews_post_list_html-1.html"))
|
|
)
|
|
res = await mcbbsnews.fetch_new_post(target, [dummy_user_subinfo])
|
|
assert news_router.called
|
|
post = res[0][1][0]
|
|
assert post.target_type == "MCBBS幻翼块讯"
|
|
assert post.text == javanews_post_1
|
|
assert post.url == "https://www.mcbbs.net/thread-1340927-1-1.html"
|
|
assert post.target_name == "Java版本资讯"
|