Files
xuetang/app/tests/test_one_click_entrypoints.py
T
2026-09-08 11:40:15 +08:00

69 lines
2.7 KiB
Python

from __future__ import annotations
from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parents[1]
def read(relative_path: str) -> str:
return (PROJECT_ROOT / relative_path).read_text(encoding="utf-8")
def test_windows_one_click_entrypoints_and_release_pipeline() -> None:
for name in (
"Run_DoctorWorkstation.bat",
"Build_DoctorWorkstation.bat",
"一键运行_医生工作站.bat",
"一键打包_医生工作站.bat",
):
assert (PROJECT_ROOT / name).is_file()
run_script = read("scripts/run_windows.ps1")
package_script = read("scripts/package_windows.ps1")
release_launcher = read("packaging/windows/start_release.bat")
assert run_script.index("$FrozenExecutable") < run_script.index("Find-Uv")
assert "& $Uv sync --frozen" in run_script
assert '"UV_CACHE_DIR"' in run_script
assert "$ProjectUvCache" in run_script
assert "& $Uv sync --frozen --extra build" in package_script
assert '"UV_CACHE_DIR"' in package_script
assert "$ProjectUvCache" in package_script
assert "& $Npm ci --prefix" in package_script
assert "build_windows.ps1" in package_script
assert "DoctorWorkstation-Windows-x64-$ProjectVersion.zip" in package_script
assert "Get-FileHash" in package_script
assert "Start_DoctorWorkstation.bat" in package_script
assert "DoctorWorkstation\\DoctorWorkstation.exe" in release_launcher
assert "explorer.exe" in read("Build_DoctorWorkstation.bat")
def test_debug_launcher_reuses_an_isolated_persistent_profile() -> None:
debug_script = read("Debug_DoctorWorkstation.bat")
assert "%LOCALAPPDATA%\\ZhenYangTang\\DoctorWorkstation\\Debug" in debug_script
assert "DOCTOR_CONFIG_DIR=%DEBUG_PROFILE%\\config" in debug_script
assert "DOCTOR_LOG_DIR=%DEBUG_PROFILE%\\logs" in debug_script
assert "%RANDOM%" not in debug_script
def test_macos_one_click_entrypoints_and_release_pipeline() -> None:
for name in (
"run_macos.command",
"package_macos.command",
"一键运行.command",
"一键打包.command",
):
assert (PROJECT_ROOT / name).is_file()
run_script = read("scripts/run_macos.sh")
package_script = read("scripts/package_macos.sh")
assert run_script.index('/usr/bin/open "$artifact"') < run_script.index("macos_ensure_uv")
assert "sync --locked" in run_script
assert "sync --locked --extra build" in package_script
assert 'ci --prefix "$project_root/video_companion"' in package_script
assert "/usr/bin/ditto -c -k --sequesterRsrc --keepParent" in package_script
assert "/usr/bin/shasum -a 256" in package_script
assert "DoctorWorkstation-macOS-$release_arch-$project_version.zip" in package_script