test: add unit tests for core, parser and operations

This commit is contained in:
ahp
2026-09-12 13:47:31 +03:30
parent b23abdb2d0
commit e3a01c4d3a
18 changed files with 1651 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
from __future__ import annotations
from pathlib import Path
from sshctl.export.permissions import check_permissions, fix_ssh_permissions
def test_check_permissions_ok(tmp_path: Path) -> None:
ssh_dir = tmp_path / ".ssh"
ssh_dir.mkdir(mode=0o700)
(ssh_dir / "config").write_text("Host test\n", encoding="utf-8")
(ssh_dir / "config").chmod(0o600)
(ssh_dir / "keys.p").mkdir(mode=0o700)
(ssh_dir / "keys.p" / "key.pub").write_text("ssh-ed25519 AAA...")
(ssh_dir / "keys.p" / "key.pub").chmod(0o644)
issues = check_permissions(ssh_dir)
total = sum(len(v) for v in issues.values())
assert total == 0
def test_fix_permissions(tmp_path: Path) -> None:
ssh_dir = tmp_path / ".ssh"
ssh_dir.mkdir(mode=0o755)
(ssh_dir / "config").write_text("Host test\n", encoding="utf-8")
(ssh_dir / "config").chmod(0o644)
(ssh_dir / "id_rsa").write_text("private key data")
(ssh_dir / "id_rsa").chmod(0o644)
counts = fix_ssh_permissions(ssh_dir)
assert counts["dirs"] >= 1
assert counts["private"] >= 1
assert (ssh_dir / "config").stat().st_mode & 0o777 == 0o600
assert (ssh_dir / "id_rsa").stat().st_mode & 0o777 == 0o600