import pytest from click.testing import CliRunner from mqtt_home.cli import cli def test_device_list_empty(monkeypatch): runner = CliRunner() async def mock_init(): pass async def mock_list(db): return [] monkeypatch.setattr("mqtt_home.cli.init_db", mock_init) monkeypatch.setattr("mqtt_home.cli.list_devices", mock_list) result = runner.invoke(cli, ["device", "list"]) assert result.exit_code == 0 assert "暂无设备" in result.output def test_cli_groups(): runner = CliRunner() result = runner.invoke(cli, ["--help"]) assert "device" in result.output assert "broker" in result.output