from __future__ import annotations from pathlib import Path from sshctl.export.inventory import _to_group_name, generate_inventory def test_to_group_name_simple() -> None: assert _to_group_name("internal") == "internal" assert _to_group_name("cluster1") == "cluster1" def test_to_group_name_with_hyphens() -> None: assert _to_group_name("8xx-serverfarm") == "z8xx_serverfarm" def test_to_group_name_starts_with_digit() -> None: assert _to_group_name("8xx") == "z8xx" def test_generate_inventory_no_ssh_dir(tmp_path: Path) -> None: result = generate_inventory(tmp_path / "nonexistent") assert result == {} def test_generate_inventory_empty_config(tmp_path: Path) -> None: ssh_dir = tmp_path / ".ssh" ssh_dir.mkdir() (ssh_dir / "config").write_text("Host *\n User root\n") result = generate_inventory(ssh_dir) assert result == {}