Align with xiaohe wheel/pip install: remove sync_workspace and desktop launcher coupling from upgrade/switch flows.
27 lines
961 B
Python
27 lines
961 B
Python
"""Tests for myagents.commands.upgrade (forwards to xiaohe upgrade)."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from click.testing import CliRunner
|
|
|
|
from myagents.commands import upgrade as up_mod
|
|
|
|
|
|
class TestUpgradeCommand:
|
|
def test_forwards_to_xiaohe(self) -> None:
|
|
with (
|
|
patch.object(up_mod.shutil, "which", return_value="/bin/xiaohe"),
|
|
patch.object(up_mod.subprocess, "call", return_value=0) as call,
|
|
):
|
|
result = CliRunner().invoke(up_mod.upgrade_cmd, ["0.5.1", "--force"])
|
|
assert result.exit_code == 0
|
|
call.assert_called_once_with(
|
|
["/bin/xiaohe", "upgrade", "0.5.1", "--force"]
|
|
)
|
|
|
|
def test_missing_xiaohe(self) -> None:
|
|
with patch.object(up_mod.shutil, "which", return_value=None):
|
|
result = CliRunner().invoke(up_mod.upgrade_cmd, [])
|
|
assert result.exit_code != 0
|
|
assert "xiaohe upgrade" in result.output
|