Files
wehub-resource-sync 5296d0e97c
CI / Ban suppressions and legacy annotations (push) Has been cancelled
CI / pytest (push) Has been cancelled
CI / ruff-check (push) Has been cancelled
CI / ruff-format (push) Has been cancelled
CI / ty (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:44 +08:00

43 lines
1.4 KiB
Python

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")