# -*- coding: utf-8 -*- """ 验证 Discuz 用户信息解析的默认值、流量和页面字段。 """ from collections.abc import Iterator import pytest from app.modules.indexer.parser.discuz import DiscuzUserInfo @pytest.fixture def parser() -> Iterator[DiscuzUserInfo]: """ 创建不访问外部服务的 Discuz 解析器,并在用例结束后关闭。 :yields: 使用空凭据和示例地址的解析器 """ instance = DiscuzUserInfo( site_name="Discuz", url="https://example.com/", site_cookie="", apikey=None, token=None, ) yield instance instance.close() def test_discuz_traffic_defaults_use_integer_bytes(parser: DiscuzUserInfo) -> None: """ 上传/下载量使用整数字节,分享率保持浮点数。 """ for value in (parser.upload, parser.download): assert value == 0 assert type(value) is int assert parser.ratio == 0.0 assert isinstance(parser.ratio, float) @pytest.mark.parametrize("include_menu", [True, False]) def test_discuz_skyeysnow_ratio(parser: DiscuzUserInfo, include_menu: bool) -> None: """ 天雪菜单和资料页的无括号分享率均应解析,且不影响积分和流量。 """ menu = """
""" if include_menu else "" html_text = f""" {menu}