Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"""Windows Desktop handoff retry policy behavior."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
RETRY_POLICY = REPO_ROOT / "scripts" / "desktop-update" / "retry-policy.ps1"
|
||||
|
||||
|
||||
@pytest.mark.windows_only
|
||||
def test_retry_policy_distinguishes_self_lock_deferral(tmp_path: Path) -> None:
|
||||
install_root = tmp_path / "hermes-agent"
|
||||
install_root.mkdir()
|
||||
marker = install_root / ".update-incomplete"
|
||||
|
||||
policy = str(RETRY_POLICY).replace("'", "''")
|
||||
root = str(install_root).replace("'", "''")
|
||||
command = f"""
|
||||
. '{policy}'
|
||||
$withoutMarker = @(
|
||||
(Test-HermesUpdateShouldRetry -ExitCode 0 -InstallRoot '{root}'),
|
||||
(Test-HermesUpdateShouldRetry -ExitCode 1 -InstallRoot '{root}'),
|
||||
(Test-HermesUpdateShouldRetry -ExitCode 2 -InstallRoot '{root}')
|
||||
)
|
||||
New-Item -ItemType File -Path (Join-Path '{root}' '.update-incomplete') | Out-Null
|
||||
$withMarker = Test-HermesUpdateShouldRetry -ExitCode 2 -InstallRoot '{root}'
|
||||
@{{ withoutMarker = $withoutMarker; withMarker = $withMarker }} |
|
||||
ConvertTo-Json -Compress
|
||||
"""
|
||||
result = subprocess.run(
|
||||
[
|
||||
"powershell",
|
||||
"-NoProfile",
|
||||
"-ExecutionPolicy",
|
||||
"Bypass",
|
||||
"-Command",
|
||||
command,
|
||||
],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=30,
|
||||
)
|
||||
|
||||
assert result.returncode == 0, result.stdout + result.stderr
|
||||
assert json.loads(result.stdout) == {
|
||||
"withoutMarker": [False, True, False],
|
||||
"withMarker": True,
|
||||
}
|
||||
assert marker.exists()
|
||||
Reference in New Issue
Block a user