37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[3]
|
|
SCRIPT = (
|
|
ROOT
|
|
/ "scripts"
|
|
/ "reboot-recovery"
|
|
/ "windows99-vmware-autostart-controlled-apply.ps1"
|
|
)
|
|
|
|
|
|
def test_controlled_apply_has_check_apply_verify_and_rollback_contract() -> None:
|
|
text = SCRIPT.read_text(encoding="utf-8")
|
|
|
|
for mode in ("DryRun", "Apply", "Verify"):
|
|
assert f'Invoke-AutostartMode -Mode {mode}' in text
|
|
assert "Export-ScheduledTask" in text
|
|
assert "Register-ScheduledTask -TaskName $TaskName -Xml $taskXml -Force" in text
|
|
assert "Restore-PolicySnapshot" in text
|
|
assert "Restore-ServiceStartModes" in text
|
|
assert 'status = "failed_rolled_back"' in text
|
|
assert 'status = "completed"' in text
|
|
|
|
|
|
def test_controlled_apply_proves_no_reboot_or_vm_power_change() -> None:
|
|
text = SCRIPT.read_text(encoding="utf-8")
|
|
|
|
assert "preVmxProcessCount" in text
|
|
assert "postVmxProcessCount" in text
|
|
assert "processCountUnchanged" in text
|
|
assert 'hostRebootPerformed = $false' in text
|
|
assert 'vmPowerChangePerformed = $false' in text
|
|
assert 'secretReadPerformed = $false' in text
|
|
assert "runningVmRows" in text
|
|
assert "VMWARE_AUTOSTART_VERIFY_READY=1" in text
|