63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
import shutil
|
|
import subprocess # nosec B404
|
|
|
|
import pytest
|
|
|
|
from augment_support import prepare_fixture
|
|
|
|
|
|
AUGGIE_ENTRY = os.environ.get("ELYDORA_AUGGIE_ENTRY")
|
|
|
|
|
|
@pytest.mark.skipif(
|
|
AUGGIE_ENTRY is None,
|
|
reason="set ELYDORA_AUGGIE_ENTRY to the official Auggie entry file",
|
|
)
|
|
def test_official_auggie_accepts_installed_user_hook_contract(
|
|
monkeypatch: pytest.MonkeyPatch, tmp_path: Path
|
|
) -> None:
|
|
node = shutil.which("node")
|
|
assert node is not None
|
|
assert AUGGIE_ENTRY is not None
|
|
fixture = prepare_fixture(monkeypatch, tmp_path)
|
|
fixture.install()
|
|
environment = {
|
|
**os.environ,
|
|
"HOME": str(fixture.home_dir),
|
|
"USERPROFILE": str(fixture.home_dir),
|
|
}
|
|
version = subprocess.run( # nosec B603
|
|
[node, AUGGIE_ENTRY, "--version"],
|
|
capture_output=True,
|
|
check=False,
|
|
cwd=fixture.project_dir,
|
|
env=environment,
|
|
text=True,
|
|
timeout=10,
|
|
)
|
|
assert version.returncode == 0, version.stderr
|
|
assert "0.33.0" in version.stdout
|
|
|
|
load = subprocess.run( # nosec B603
|
|
[node, AUGGIE_ENTRY, "tools", "list"],
|
|
capture_output=True,
|
|
check=False,
|
|
cwd=fixture.project_dir,
|
|
env=environment,
|
|
text=True,
|
|
timeout=15,
|
|
)
|
|
assert load.returncode == 0, load.stderr
|
|
output = f"{load.stdout}\n{load.stderr}".lower()
|
|
for error in (
|
|
"invalid settings",
|
|
"settings validation",
|
|
"failed to parse",
|
|
"hook configuration error",
|
|
):
|
|
assert error not in output
|