shin / tests /core /test_version.py
LastNoob's picture
Use installed metadata as the single package version source (#1051)
4ab63bd unverified
Raw
History Blame Contribute Delete
1.43 kB
import tomllib
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version as distribution_version
from pathlib import Path
import pytest
import free_claude_code.core.version as version_module
def test_package_version_uses_installed_distribution_metadata() -> None:
assert version_module.package_version() == distribution_version("free-claude-code")
def test_package_version_has_explicit_uninstalled_source_fallback(
monkeypatch: pytest.MonkeyPatch,
) -> None:
def missing(_distribution_name: str) -> str:
raise PackageNotFoundError("free-claude-code")
monkeypatch.setattr(version_module, "distribution_version", missing)
assert version_module.package_version() == "0+unknown"
def test_package_version_does_not_hide_invalid_installed_metadata(
monkeypatch: pytest.MonkeyPatch,
) -> None:
def invalid(_distribution_name: str) -> str:
raise ValueError("invalid metadata")
monkeypatch.setattr(version_module, "distribution_version", invalid)
with pytest.raises(ValueError, match="invalid metadata"):
version_module.package_version()
def test_project_release_version_matches_installed_metadata() -> None:
repo_root = Path(__file__).resolve().parents[2]
pyproject = tomllib.loads((repo_root / "pyproject.toml").read_text("utf-8"))
assert pyproject["project"]["version"] == distribution_version("free-claude-code")