hermes-agent/tests/hermes_cli/test_banner_git_state.py

46 lines
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