Complete training workflow and acceptance hardening

This commit is contained in:
andreysk0304 2026-09-26 18:12:27 +03:00 • committed by gglamer
commit 7237265833
243 changed files with 17014 additions and 1500 deletions

View file

@ -0,0 +1,59 @@
import subprocess
import sys
from pathlib import Path
SCRIPTS = Path(__file__).resolve().parents[2] / "scripts"
sys.path.insert(0, str(SCRIPTS))
from sip_recording_cleanup import remove_smoke_recordings # noqa: E402
def test_cleanup_removes_only_new_wav_basenames_from_compose_volume(tmp_path):
calls = []
def run(command, **kwargs):
calls.append((command, kwargs))
return subprocess.CompletedProcess(command, 0, stdout="")
assert remove_smoke_recordings(
tmp_path,
{"20260926-120000-6101-6102-abc.wav", "../keep.wav", "old.txt"},
runner=run,
)
command, options = calls[0]
assert command[-4:] == [
"rm", "-f", "--", "/recordings/20260926-120000-6101-6102-abc.wav",
]
assert "../keep.wav" not in command
assert "old.txt" not in command
assert options["cwd"] == tmp_path
assert len(calls) == 2
assert calls[1][0][-8:] == [
"find", "/recordings", "-maxdepth", "1", "-type", "f", "-name", "*.wav",
]
def test_cleanup_does_not_run_compose_for_empty_or_unsafe_names(tmp_path):
def unexpected_run(*_args, **_kwargs):
raise AssertionError("no deletion command should be needed")
assert remove_smoke_recordings(tmp_path, {"../outside.wav", "not-a-recording.txt"}, runner=unexpected_run)
def test_cleanup_reports_compose_failure(tmp_path):
def fail(command, **_kwargs):
return subprocess.CompletedProcess(command, 1)
assert not remove_smoke_recordings(tmp_path, {"new.wav"}, runner=fail)
def test_cleanup_fails_if_exact_smoke_file_still_exists(tmp_path):
calls = []
def run(command, **_kwargs):
calls.append(command)
output = "/recordings/new.wav\n" if len(calls) == 2 else ""
return subprocess.CompletedProcess(command, 0, stdout=output)
assert not remove_smoke_recordings(tmp_path, {"new.wav"}, runner=run)