mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
fix: 修复站点用户数据转换并完善媒体来源扩展
This commit is contained in:
@@ -80,6 +80,29 @@ def test_projection_preserves_services_modules_actions_and_pid_filter():
|
||||
}]
|
||||
|
||||
|
||||
def test_projection_collects_enabled_media_source_declarations():
|
||||
"""只投影启用插件的媒体来源声明,并附带插件 ID 便于诊断。"""
|
||||
demo = _Plugin(
|
||||
get_media_source=lambda: [{
|
||||
"name": "Acme Video",
|
||||
"media_source": "acme.video",
|
||||
"media_types": ["电影", "电视剧"],
|
||||
}],
|
||||
)
|
||||
disabled = _Plugin(
|
||||
enabled=False,
|
||||
get_media_source=lambda: [{"name": "Disabled", "media_source": "disabled"}],
|
||||
)
|
||||
projection = PluginProjection({"Demo": demo, "Disabled": disabled})
|
||||
|
||||
assert projection.media_sources() == [{
|
||||
"name": "Acme Video",
|
||||
"media_source": "acme.video",
|
||||
"media_types": ["电影", "电视剧"],
|
||||
"plugin_id": "Demo",
|
||||
}]
|
||||
|
||||
|
||||
def test_projection_isolates_one_plugin_hook_failure():
|
||||
"""单个插件 hook 失败只记日志,不阻断其他插件投影。"""
|
||||
errors = []
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
"""站点查询应用服务的 ORM 投影契约测试。"""
|
||||
|
||||
from unittest.mock import Mock
|
||||
|
||||
from app.application.site.query import SiteQueryService
|
||||
from app.db.models.siteuserdata import SiteUserData as SiteUserDataRecord
|
||||
from app.schemas.site import SiteUserData
|
||||
|
||||
|
||||
def test_userdata_latest_sync_projects_orm_record_to_dto() -> None:
|
||||
"""同步站点用户数据查询应支持 SQLAlchemy ORM 记录。"""
|
||||
record = SiteUserDataRecord(
|
||||
domain="site.example",
|
||||
username="tester",
|
||||
userid="42",
|
||||
user_level="Power User",
|
||||
upload=1024.0,
|
||||
download=512.0,
|
||||
seeding=3.0,
|
||||
leeching=1.0,
|
||||
seeding_size=2048.0,
|
||||
leeching_size=256.0,
|
||||
)
|
||||
repository = Mock()
|
||||
repository.get_userdata_latest.return_value = [record]
|
||||
|
||||
result = SiteQueryService(repository).userdata_latest_sync()
|
||||
|
||||
assert isinstance(result[0], SiteUserData)
|
||||
assert result[0].domain == "site.example"
|
||||
assert result[0].userid == "42"
|
||||
assert result[0].upload == 1024
|
||||
Reference in New Issue
Block a user