hermes-agent/tests/hermes_cli/test_banner_git_state.py
ethernet 1a4c4eca0d feat(version): derive display versions from release tags
Resolve user-facing versions from SemVer release tags and available local
history while retaining raw package metadata for API identity. Stamp Desktop
provenance at build time, and expose generic version details for every
Desktop install method.
2026-07-28 17:22:59 -04:00

46 lines
No EOL
1.3 KiB
Python

from unittest.mock import MagicMock, patch
from hermes_cli.version_info import VersionInfo
def test_format_banner_version_label_without_git_state():
from hermes_cli import banner
with patch.object(
banner,
"get_version_info",
return_value=VersionInfo(banner.VERSION, banner.VERSION, None, None, None, "unknown"),
):
value = banner.format_banner_version_label()
assert value == f"Hermes Agent v{banner.VERSION}"
def test_format_banner_version_label_includes_derived_version_and_provenance():
from hermes_cli import banner
with patch.object(
banner,
"get_version_info",
return_value=VersionInfo("0.19.0", "0.19.0+3", 3, "b" * 40, "feature/version", "git"),
):
value = banner.format_banner_version_label()
assert "v0.19.0+3" in value
assert "feature/version" in value
assert "b" * 12 in value
def test_format_banner_version_label_omits_zero_suffix():
from hermes_cli import banner
with patch.object(
banner,
"get_version_info",
return_value=VersionInfo("0.19.0", "0.19.0", 0, "a" * 40, "main", "git"),
):
value = banner.format_banner_version_label()
assert "v0.19.0" in value
assert "+0" not in value
assert "carried" not in value