Files
2026-07-13 13:12:33 +08:00

156 lines
5.5 KiB
Python

from __future__ import annotations
from pathlib import Path
def test_support_probe_reports_unavailable_off_windows(monkeypatch) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
monkeypatch.setattr(mod.sys, "platform", "linux")
support = mod.probe_windows_default_support()
assert support.is_windows is False
assert support.default_backend_available is False
assert support.proxy_allowlist_enforced is False
def test_support_probe_requires_setup_marker_on_windows(
monkeypatch,
tmp_path: Path,
) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
monkeypatch.setattr(mod.sys, "platform", "win32")
monkeypatch.setattr(mod, "_ctypes_available", lambda: True)
monkeypatch.setattr(mod, "_token_api_available", lambda: True)
monkeypatch.setattr(mod, "_acl_api_available", lambda: True)
monkeypatch.setattr(
mod,
"default_setup_marker_path",
lambda home=None: tmp_path / "setup_marker.json",
)
support = mod.probe_windows_default_support(home=tmp_path)
assert support.is_windows is True
assert support.ctypes_available is True
assert support.setup_ready is False
assert support.default_backend_available is False
assert support.requires_admin_setup is True
def test_support_probe_accepts_current_setup_marker(
monkeypatch,
tmp_path: Path,
) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
from opensquilla.sandbox.backend.windows_default_setup import write_setup_marker
marker = tmp_path / "setup_marker.json"
write_setup_marker(marker, setup_version=1)
monkeypatch.setattr(mod.sys, "platform", "win32")
monkeypatch.setattr(mod, "_ctypes_available", lambda: True)
monkeypatch.setattr(mod, "_token_api_available", lambda: True)
monkeypatch.setattr(mod, "_acl_api_available", lambda: True)
monkeypatch.setattr(mod, "default_setup_marker_path", lambda home=None: marker)
support = mod.probe_windows_default_support(home=tmp_path)
assert support.setup_ready is True
assert support.default_backend_available is True
assert support.proxy_allowlist_enforced is False
def test_support_probe_requires_network_marker_for_proxy_enforcement(
monkeypatch,
tmp_path: Path,
) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
from opensquilla.sandbox.backend.windows_default_setup import write_setup_marker
marker = tmp_path / "setup_marker.json"
write_setup_marker(marker)
monkeypatch.setattr(mod.sys, "platform", "win32")
monkeypatch.setattr(mod, "_ctypes_available", lambda: True)
monkeypatch.setattr(mod, "_token_api_available", lambda: True)
monkeypatch.setattr(mod, "_acl_api_available", lambda: True)
monkeypatch.setattr(mod, "default_setup_marker_path", lambda home=None: marker)
support = mod.probe_windows_default_support(home=tmp_path, proxy_ports=(43128,))
assert support.default_backend_available is True
assert support.proxy_allowlist_enforced is False
def test_support_probe_accepts_current_network_marker(
monkeypatch,
tmp_path: Path,
) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
from opensquilla.sandbox.backend.windows_default_network import (
FIREWALL_RULE_VERSION,
WFP_RULE_VERSION,
WindowsNetworkSetup,
)
from opensquilla.sandbox.backend.windows_default_setup import write_setup_marker
marker = tmp_path / "setup_marker.json"
write_setup_marker(
marker,
network=WindowsNetworkSetup(
offline_user_sid="S-1-5-21-100-200-300-400",
allowed_proxy_ports=(43128,),
allow_local_binding=False,
firewall_rule_version=FIREWALL_RULE_VERSION,
wfp_rule_version=WFP_RULE_VERSION,
),
)
monkeypatch.setattr(mod.sys, "platform", "win32")
monkeypatch.setattr(mod, "_ctypes_available", lambda: True)
monkeypatch.setattr(mod, "_token_api_available", lambda: True)
monkeypatch.setattr(mod, "_acl_api_available", lambda: True)
monkeypatch.setattr(mod, "default_setup_marker_path", lambda home=None: marker)
support = mod.probe_windows_default_support(home=tmp_path)
assert support.proxy_allowlist_enforced is True
def test_support_probe_rejects_legacy_firewall_network_marker(
monkeypatch,
tmp_path: Path,
) -> None:
from opensquilla.sandbox.backend import windows_default_support as mod
from opensquilla.sandbox.backend.windows_default_network import (
WFP_RULE_VERSION,
WindowsNetworkSetup,
)
from opensquilla.sandbox.backend.windows_default_setup import write_setup_marker
marker = tmp_path / "setup_marker.json"
write_setup_marker(
marker,
network=WindowsNetworkSetup(
offline_user_sid="S-1-5-21-100-200-300-400",
allowed_proxy_ports=(43128,),
allow_local_binding=False,
firewall_rule_version=1,
wfp_rule_version=WFP_RULE_VERSION,
),
)
monkeypatch.setattr(mod.sys, "platform", "win32")
monkeypatch.setattr(mod, "_ctypes_available", lambda: True)
monkeypatch.setattr(mod, "_token_api_available", lambda: True)
monkeypatch.setattr(mod, "_acl_api_available", lambda: True)
monkeypatch.setattr(mod, "default_setup_marker_path", lambda home=None: marker)
support = mod.probe_windows_default_support(home=tmp_path)
assert support.default_backend_available is True
assert support.proxy_allowlist_enforced is False