refactor: DRY cleanup from code review
- dep_ensure.py: use get_hermes_home() instead of hand-rolled env var - dep_ensure.py: add "chrome" to browser name list (was inconsistent with browser_tool.py) - main.py _cmd_update_check: use detect_install_method() directly instead of redundant .git check - main.py _cmd_update_pip: build command list directly instead of fragile split() on display string - banner.py: rename _check_via_pypi → check_via_pypi (cross-module public API)
This commit is contained in:
@@ -1,29 +1,29 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
|
||||
def test_check_via_pypi_detects_update():
|
||||
"""_check_via_pypi returns 1 when PyPI has newer version."""
|
||||
from hermes_cli.banner import _check_via_pypi
|
||||
def testcheck_via_pypi_detects_update():
|
||||
"""check_via_pypi returns 1 when PyPI has newer version."""
|
||||
from hermes_cli.banner import check_via_pypi
|
||||
with patch("hermes_cli.banner.VERSION", "0.12.0"):
|
||||
with patch("hermes_cli.banner._fetch_pypi_latest", return_value="0.13.0"):
|
||||
result = _check_via_pypi()
|
||||
result = check_via_pypi()
|
||||
assert result == 1
|
||||
|
||||
|
||||
def test_check_via_pypi_up_to_date():
|
||||
"""_check_via_pypi returns 0 when versions match."""
|
||||
from hermes_cli.banner import _check_via_pypi
|
||||
def testcheck_via_pypi_up_to_date():
|
||||
"""check_via_pypi returns 0 when versions match."""
|
||||
from hermes_cli.banner import check_via_pypi
|
||||
with patch("hermes_cli.banner.VERSION", "0.13.0"):
|
||||
with patch("hermes_cli.banner._fetch_pypi_latest", return_value="0.13.0"):
|
||||
result = _check_via_pypi()
|
||||
result = check_via_pypi()
|
||||
assert result == 0
|
||||
|
||||
|
||||
def test_check_via_pypi_network_failure():
|
||||
"""_check_via_pypi returns None on network error."""
|
||||
from hermes_cli.banner import _check_via_pypi
|
||||
def testcheck_via_pypi_network_failure():
|
||||
"""check_via_pypi returns None on network error."""
|
||||
from hermes_cli.banner import check_via_pypi
|
||||
with patch("hermes_cli.banner._fetch_pypi_latest", return_value=None):
|
||||
result = _check_via_pypi()
|
||||
result = check_via_pypi()
|
||||
assert result is None
|
||||
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ def test_check_for_updates_no_git_dir(tmp_path, monkeypatch):
|
||||
monkeypatch.setattr(banner, "__file__", str(fake_banner))
|
||||
monkeypatch.setenv("HERMES_HOME", str(tmp_path))
|
||||
with patch("hermes_cli.banner.subprocess.run") as mock_run:
|
||||
with patch("hermes_cli.banner._check_via_pypi", return_value=0):
|
||||
with patch("hermes_cli.banner.check_via_pypi", return_value=0):
|
||||
result = banner.check_for_updates()
|
||||
assert result == 0
|
||||
mock_run.assert_not_called()
|
||||
|
||||
Reference in New Issue
Block a user