9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
95 lines
2.7 KiB
Python
95 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
"""Regression tests for the Whisper VAD patcher embedded in the entrypoint."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT_DIR = Path(__file__).resolve().parents[1]
|
|
ENTRYPOINT = ROOT_DIR / "extensions" / "services" / "whisper" / "docker-entrypoint.sh"
|
|
|
|
|
|
def load_vad_patcher() -> dict[str, object]:
|
|
source = ENTRYPOINT.read_text(encoding="utf-8")
|
|
marker_start = "cat > /tmp/vad_patcher.py << 'PYTHON_EOF'"
|
|
marker_end = "PYTHON_EOF"
|
|
assert marker_start in source
|
|
embedded = source.split(marker_start, 1)[1].split(marker_end, 1)[0].strip()
|
|
patcher_source = embedded.split('if __name__ == "__main__":', 1)[0]
|
|
namespace: dict[str, object] = {}
|
|
exec(patcher_source, namespace)
|
|
return namespace
|
|
|
|
|
|
def patch_source(source: str) -> tuple[str, bool]:
|
|
patcher = load_vad_patcher()["patch_transcribe_call"]
|
|
return patcher(source) # type: ignore[no-any-return]
|
|
|
|
|
|
def test_vad_patch_single_line_transcribe_call() -> None:
|
|
patched, modified = patch_source(
|
|
"""
|
|
def transcribe_audio(model, file):
|
|
result = model.transcribe(file)
|
|
return result
|
|
""".strip()
|
|
)
|
|
|
|
assert modified is True
|
|
assert 'model.transcribe(file, vad_filter=True, vad_parameters={"threshold": 0.5})' in patched
|
|
|
|
|
|
def test_vad_patch_multiline_transcribe_call() -> None:
|
|
patched, modified = patch_source(
|
|
"""
|
|
def transcribe_audio(model, file):
|
|
result = model.transcribe(
|
|
file,
|
|
language="en"
|
|
)
|
|
return result
|
|
""".strip()
|
|
)
|
|
|
|
assert modified is True
|
|
assert "vad_filter=True" in patched
|
|
assert 'vad_parameters={"threshold": 0.5}' in patched
|
|
|
|
|
|
def test_vad_patch_is_idempotent_when_kwargs_already_exist() -> None:
|
|
source = """
|
|
def transcribe_audio(model, file):
|
|
return model.transcribe(file, vad_filter=True)
|
|
""".strip()
|
|
|
|
patched, modified = patch_source(source)
|
|
|
|
assert modified is False
|
|
assert patched == source
|
|
|
|
|
|
def test_vad_patch_uses_rightmost_paren_for_nested_single_line_call() -> None:
|
|
patched, modified = patch_source(
|
|
"""
|
|
def transcribe_audio(model, path):
|
|
return model.transcribe(load_audio(path))
|
|
""".strip()
|
|
)
|
|
|
|
assert modified is True
|
|
assert "load_audio(path))" not in patched
|
|
assert 'load_audio(path), vad_filter=True, vad_parameters={"threshold": 0.5})' in patched
|
|
|
|
|
|
if __name__ == "__main__":
|
|
tests = [
|
|
test_vad_patch_single_line_transcribe_call,
|
|
test_vad_patch_multiline_transcribe_call,
|
|
test_vad_patch_is_idempotent_when_kwargs_already_exist,
|
|
test_vad_patch_uses_rightmost_paren_for_nested_single_line_call,
|
|
]
|
|
for test in tests:
|
|
test()
|
|
print("[PASS] Whisper VAD patch regressions")
|