46 lines
1.3 KiB
Python
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 |