Files
MoviePilot/tests/test_hddolby_parser.py

69 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from app.modules.indexer.parser.hddolby import HDDolbySiteUserInfo
from app.modules.indexer.parser.nexus_php import NexusPhpSiteUserInfo
USER_DATA_JSON = """
{
"status": 0,
"data": [{
"id": "41088",
"username": "g0m3e",
"added": "2023-12-18 13:58:19",
"class": "5",
"uploaded": "1000",
"downloaded": "500",
"seedbonus": "100.0",
"unread_messages": "1"
}]
}
"""
def _build_parser(site_cookie: str = "") -> HDDolbySiteUserInfo:
return HDDolbySiteUserInfo(
site_name="高清杜比",
url="https://www.hddolby.com/",
site_cookie=site_cookie,
apikey="test-api-key",
token=None,
)
def test_hddolby_parse_user_base_info_reads_unread_count():
parser = _build_parser()
parser._parse_user_base_info(USER_DATA_JSON)
assert parser.userid == "41088"
assert parser.username == "g0m3e"
assert parser.message_unread == 1
def test_hddolby_skips_message_body_without_cookie():
parser = _build_parser(site_cookie="")
parser.message_unread = 1
parser._pase_unread_msgs()
assert parser.message_unread_contents == []
def test_hddolby_reads_message_body_via_nexus_when_cookie_present(monkeypatch):
parser = _build_parser(site_cookie="c_secure_uid=1")
parser.message_unread = 1
def fake_pase_unread_msgs(self):
self.message_unread_contents = [
("测试标题", "2026-07-21 10:00:00", "测试正文"),
]
monkeypatch.setattr(NexusPhpSiteUserInfo, "_pase_unread_msgs", fake_pase_unread_msgs)
parser._pase_unread_msgs()
assert len(parser.message_unread_contents) == 1
head, date, content = parser.message_unread_contents[0]
assert head == "测试标题"
assert date == "2026-07-21 10:00:00"
assert content == "测试正文"