mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-03 22:04:57 +08:00
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
"""
|
|
验证站点浏览接口保留零起始页码和多选分类。
|
|
"""
|
|
|
|
import asyncio
|
|
from types import SimpleNamespace
|
|
from unittest.mock import AsyncMock
|
|
|
|
import pytest
|
|
|
|
from app.api.endpoints import site as site_endpoint
|
|
|
|
|
|
@pytest.mark.parametrize("page", [0, 1, 2])
|
|
@pytest.mark.parametrize("cat", ["401,402", "电影DVDRip,MUSIC,music"])
|
|
def test_site_resource_preserves_zero_based_pages_and_categories(monkeypatch, page, cat):
|
|
"""
|
|
第一页与后续页保持独立偏移,数字及文本多选分类原样交给浏览链路。
|
|
"""
|
|
query = SimpleNamespace(get=AsyncMock(return_value=SimpleNamespace(domain="https://site.example/")))
|
|
torrent = SimpleNamespace(to_dict=lambda: {"title": "命中资源"})
|
|
browse = AsyncMock(return_value=[torrent])
|
|
monkeypatch.setattr(site_endpoint, "TorrentsChain", lambda: SimpleNamespace(async_browse=browse))
|
|
|
|
result = asyncio.run(site_endpoint.site_resource(
|
|
site_id=1, keyword="关键词", cat=cat, page=page, query=query,
|
|
))
|
|
|
|
assert result == [{"title": "命中资源"}]
|
|
query.get.assert_awaited_once_with(1)
|
|
browse.assert_awaited_once_with(
|
|
domain="https://site.example/", keyword="关键词", cat=cat, page=page, mtype=None,
|
|
)
|