28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
import platform
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
from applepy.checks.pyobjc_surface import check_running_applications_native
|
|
from applepy.context import RunContext
|
|
|
|
|
|
def test_non_macos_finding(tmp_path: Path) -> None:
|
|
if platform.system() == "Darwin":
|
|
pytest.skip("macOS uses objc-003/objc-002 path")
|
|
ctx = RunContext(home=tmp_path, output_dir=tmp_path, phase="unprivileged")
|
|
out = check_running_applications_native(ctx)
|
|
assert len(out) == 1
|
|
assert out[0].id == "objc-001"
|
|
assert "Darwin" in out[0].description or "macOS" in out[0].description
|
|
|
|
|
|
@pytest.mark.skipif(platform.system() != "Darwin", reason="PyObjC AppKit only on macOS")
|
|
def test_macos_returns_workspace_or_import_finding(tmp_path: Path) -> None:
|
|
ctx = RunContext(home=tmp_path, output_dir=tmp_path, phase="unprivileged")
|
|
out = check_running_applications_native(ctx)
|
|
assert len(out) == 1
|
|
assert out[0].id in ("objc-002", "objc-003")
|
|
if out[0].id == "objc-003":
|
|
assert "NSWorkspace" in out[0].evidence
|
|
assert "\t" in out[0].evidence or "bundle_id" in out[0].evidence
|