32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import plistlib
|
|
from pathlib import Path
|
|
|
|
from applepy.mscp_audit_parse import parse_audit_plist
|
|
|
|
|
|
def test_parse_audit_plist_per_rule(tmp_path: Path) -> None:
|
|
plist_path = tmp_path / "org.applepy_mscp.audit.plist"
|
|
payload = {
|
|
"lastComplianceCheck": "2026-01-01",
|
|
"rule_a": {"finding": False},
|
|
"rule_b": {"finding": True, "exempt": 0},
|
|
"rule_c": {"finding": True, "exempt": 1},
|
|
}
|
|
plist_path.write_bytes(plistlib.dumps(payload))
|
|
findings = parse_audit_plist(plist_path)
|
|
ids = {f.id for f in findings}
|
|
assert "mscp-rule_a" in ids
|
|
assert "mscp-rule_b" in ids
|
|
assert "mscp-rule_c" in ids
|
|
assert len(findings) == 3
|
|
by_id = {f.id: f for f in findings}
|
|
assert "rule_a" in by_id["mscp-rule_a"].description
|
|
assert "compliant" in by_id["mscp-rule_a"].description.lower()
|
|
assert "rule_b" in by_id["mscp-rule_b"].description
|
|
assert "non-compliant" in by_id["mscp-rule_b"].description.lower()
|
|
assert "exempt" in by_id["mscp-rule_c"].description.lower()
|
|
|
|
|
|
def test_parse_missing_plist(tmp_path: Path) -> None:
|
|
assert parse_audit_plist(tmp_path / "nope.plist") == []
|