CUDA toolkit detection also checks CUDA_HOME, CUDA_PATH and /usr/local/cuda*, and the backend order names only backends the installed build compiled in. An explicit IBus pin on niri is honoured with one warning. The update checker queries this fork's Gitea releases and packaged installs make no network request. The one-time legacy import repoints a migrated dictionary path at the copied file.
94 lines
3.5 KiB
Python
94 lines
3.5 KiB
Python
"""Unit guards for packaged-install detection and its update presentation.
|
|
|
|
Ticket #27 decides the update-checker behaviour for packaged installs:
|
|
background checks stay available as a signal, but every user-visible
|
|
update affordance presents the package-manager path instead of release
|
|
downloads. The xbps template installs the marker this module reads.
|
|
"""
|
|
|
|
from pathlib import Path
|
|
|
|
from vocalinux.utils.packaging import (
|
|
PACKAGED_MARKER_PATH,
|
|
PACKAGED_UPDATE_HINT,
|
|
is_packaged_install,
|
|
update_menu_label,
|
|
update_menu_tooltip,
|
|
update_notification_body,
|
|
updates_description,
|
|
)
|
|
|
|
|
|
def test_default_marker_lives_under_the_renamed_share_dir() -> None:
|
|
"""The template installs usr/share/voculinux/packaged; the code reads it."""
|
|
assert PACKAGED_MARKER_PATH == Path("/usr/share/voculinux/packaged")
|
|
|
|
|
|
def test_unpackaged_install_by_default(tmp_path: Path) -> None:
|
|
"""No marker in the test environment means a non-packaged install."""
|
|
assert not is_packaged_install(marker=tmp_path / "packaged")
|
|
|
|
|
|
def test_packaged_install_when_the_marker_exists(tmp_path: Path) -> None:
|
|
"""The xbps template drops the marker file at install time."""
|
|
marker = tmp_path / "packaged"
|
|
marker.touch()
|
|
assert is_packaged_install(marker=marker)
|
|
|
|
|
|
def test_packaged_hint_names_the_package_manager_path() -> None:
|
|
"""The presented path is xbps, not a release download."""
|
|
assert "xbps-install -Su" in PACKAGED_UPDATE_HINT
|
|
assert "updates arrive via sudo xbps-install -Su" in PACKAGED_UPDATE_HINT
|
|
|
|
|
|
def test_unpackaged_menu_label_is_unchanged() -> None:
|
|
"""Source installs keep the release-download affordance they always had."""
|
|
assert update_menu_label("v1.2.3", packaged=False) == "Update Available (v1.2.3)…"
|
|
|
|
|
|
def test_packaged_menu_label_presents_the_package_manager() -> None:
|
|
"""Packaged installs must not misdirect users to release downloads."""
|
|
label = update_menu_label("v1.2.3", packaged=True)
|
|
assert "v1.2.3" in label
|
|
assert "package manager" in label
|
|
|
|
|
|
def test_unpackaged_menu_tooltip_is_unchanged() -> None:
|
|
"""Source installs keep pointing at release notes and download links."""
|
|
tooltip = update_menu_tooltip(packaged=False)
|
|
assert "release notes" in tooltip and "download links" in tooltip
|
|
|
|
|
|
def test_packaged_menu_tooltip_names_xbps() -> None:
|
|
"""The packaged tooltip tells the user where the update comes from."""
|
|
assert "xbps" in update_menu_tooltip(packaged=True)
|
|
|
|
|
|
def test_packaged_notification_body_presents_the_package_manager() -> None:
|
|
"""The desktop notification must not offer a download path either."""
|
|
body = update_notification_body("v1.2.3", packaged=True)
|
|
assert "v1.2.3" in body
|
|
assert "package manager" in body
|
|
|
|
|
|
def test_unpackaged_notification_body_keeps_release_notes() -> None:
|
|
"""Source installs keep the existing notification wording."""
|
|
body = update_notification_body("v1.2.3", packaged=False)
|
|
assert "v1.2.3" in body
|
|
assert "release notes" in body
|
|
|
|
|
|
def test_unpackaged_updates_description_is_unchanged() -> None:
|
|
"""The About page keeps its channel wording for source installs."""
|
|
description = updates_description("stable", packaged=False)
|
|
assert "stable" in description
|
|
assert "package manager" not in description
|
|
|
|
|
|
def test_packaged_updates_description_presents_the_package_manager() -> None:
|
|
"""The About page tells packaged users to update through xbps."""
|
|
description = updates_description("stable", packaged=True)
|
|
assert "stable" in description
|
|
assert "xbps-install -Su" in description
|