This repository has been archived on 2026-06-22. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
enroll/tests/test_version_extra.py
2026-06-21 13:37:37 +10:00

59 lines
1.6 KiB
Python

from __future__ import annotations
import importlib.metadata as metadata
def test_get_enroll_version_returns_string():
from enroll.version import get_enroll_version
result = get_enroll_version()
assert isinstance(result, str)
assert len(result) > 0
def test_get_enroll_version_falls_back_after_bad_mapped_dist(monkeypatch):
from enroll.version import get_enroll_version
monkeypatch.setattr(
metadata,
"packages_distributions",
lambda: {"enroll": ["wrong-dist", "enroll"]},
)
def fake_version(name):
if name == "enroll":
return "0.7.0"
raise metadata.PackageNotFoundError(name)
monkeypatch.setattr(metadata, "version", fake_version)
assert get_enroll_version() == "0.7.0"
def test_get_enroll_version_uses_default_when_mapping_fails(monkeypatch):
from enroll.version import get_enroll_version
def broken_mapping():
raise RuntimeError("metadata unavailable")
monkeypatch.setattr(metadata, "packages_distributions", broken_mapping)
monkeypatch.setattr(
metadata,
"version",
lambda name: "0.7.0" if name == "enroll" else "bad",
)
assert get_enroll_version() == "0.7.0"
def test_get_enroll_version_returns_unknown_when_all_lookups_fail(monkeypatch):
from enroll.version import get_enroll_version
monkeypatch.setattr(metadata, "packages_distributions", lambda: {"enroll": ["bad"]})
def missing(_name):
raise metadata.PackageNotFoundError(_name)
monkeypatch.setattr(metadata, "version", missing)
assert get_enroll_version() == "unknown"