mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
feat: 新增 Python 3.14t 自由线程镜像 (#6434)
* fix(resource): select free-threaded extension ABI * chore(deps): require moviepilot-rust 0.2.9 * perf: add free-threaded runtime comparison * feat: add free-threaded runtime profile * chore(deps): require moviepilot-rust 0.3.0 * test: isolate system endpoint import graph * fix(docker): preserve runtime profile during recovery * feat(runtime): expose active GIL state * feat(plugin): log GIL fallback attribution * test: refresh runtime observability dependency baseline * fix(plugin): validate the active uv runtime profile * test(runtime): expand free-threaded benchmark evidence * docs(runtime): define v3t governance gates * test(runtime): separate rust benchmark modes * docs: sync free-threaded architecture baseline * perf: add PostgreSQL driver comparison * docs(runtime): record final free-threaded evidence * fix(runtime): converge dual-profile dependency verification * fix(runtime): scope Python 3.14 warning filter * fix(runtime): match actual oss2 syntax warning * docs(runtime): refresh free-threaded benchmark evidence * test(architecture): refresh runtime dependency baseline * ci: skip unused Trivy Java database * build: exclude local verification artifacts * docs(runtime): refresh PostgreSQL driver benchmarks * docs(runtime): record plugin restore acceptance * docs(runtime): record amd64 candidate acceptance * ci: pin beta image publisher action * test(architecture): merge runtime dependency baseline * feat(runtime): expose Python GIL status * docs(runtime): document Python runtime status fields
This commit is contained in:
@@ -7,6 +7,7 @@ from app.adapters.system.package import (
|
||||
PackageInstallRequest,
|
||||
build_package_install_env,
|
||||
build_package_install_strategies,
|
||||
build_project_sync_strategies,
|
||||
redact_url,
|
||||
)
|
||||
|
||||
@@ -129,6 +130,31 @@ def test_build_strategies_passes_all_manifests_to_one_uv_process(tmp_path):
|
||||
assert command[second_requirement + 1] == str(legacy)
|
||||
|
||||
|
||||
def test_project_sync_selects_current_runtime_group(tmp_path, monkeypatch):
|
||||
"""主项目恢复必须显式选择当前解释器对应的互斥运行依赖组。"""
|
||||
project = tmp_path / "project"
|
||||
project.mkdir()
|
||||
pyproject = project / "pyproject.toml"
|
||||
pyproject.write_text("[project]\nname='moviepilot'\nversion='0'\n", encoding="utf-8")
|
||||
uv_bin = tmp_path / "venv" / "bin" / "uv"
|
||||
uv_bin.parent.mkdir(parents=True)
|
||||
uv_bin.write_text("", encoding="utf-8")
|
||||
request = PackageInstallRequest(
|
||||
dependency_files=(pyproject,),
|
||||
python_bin=tmp_path / "venv" / "bin" / "python",
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"app.adapters.system.package.runtime_sync_arguments",
|
||||
lambda: ("--no-default-groups", "--group", "runtime-free-threaded"),
|
||||
)
|
||||
|
||||
command = build_project_sync_strategies(request)[0].command
|
||||
|
||||
assert command.count("--group") == 1
|
||||
assert command[command.index("--group") + 1] == "runtime-free-threaded"
|
||||
assert "--no-default-groups" in command
|
||||
|
||||
|
||||
def test_redact_url_removes_userinfo():
|
||||
assert redact_url("https://user:pass@mirror.example/simple") == "https://mirror.example/simple"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user