La suite contiene 90 test dedicati:
- 79 test Python in
bridge/tests. - 11 test Rust con nomi che iniziano per
omni_port_.
Gli 84 casi della suite originale di Omni Describer sono stati mantenuti o adattati alle responsabilità reali di Sonarpad. Sono stati aggiunti 6 test per il protocollo headless specifico di Sonarpad.
Comandi eseguiti nell'ambiente disponibile:
python bridge/run_audio_description_tests.py
python -m pytest bridge/tests -q
Risultati:
Ran 79 tests ... OK
79 passed, 17 subtests passed
Sono stati verificati senza chiamate reali alla rete:
- Timestamp relativi e assoluti, ordinamento e correzione degli offset.
- Chunk Gemini da 180 secondi e delega della preparazione multimediale a Rust.
- Retry per timeout, rete, HTTP 5xx, contenuti bloccati e file Gemini in elaborazione.
- Quota esaurita con cambio modello, attesa o interruzione senza perdere il chunk corrente.
- Validazione e recupero dell'elenco dei modelli Gemini.
- Controllo e correzione selettiva della lingua delle descrizioni.
- Prompt intensivi, copertura degli slot e continuità dei personaggi.
- Attivazione e disattivazione effettiva del glossario dei personaggi.
- Modello Pyannote ONNX incluso, checksum, cache della sessione e post-elaborazione NumPy.
- Intervalli protetti, spostamento massimo di 5 secondi, descrizioni escluse e pause estese.
- Protocollo
QUOTAe validazione dei chunk preparati dalle librerie FFmpeg Rust.
Gli 11 test Rust verificano:
- Rimozione del silenzio finale Edge senza tagliare il parlato.
- Conservazione di una coda silenziosa breve.
- Missaggio con durata invariata e modifica soltanto degli intervalli previsti.
- Inserimento di una pausa estesa e allungamento della timeline.
- Round-trip del progetto JSON con i tempi realmente inseriti nell'MP3.
- Compatibilità dei progetti precedenti senza il campo dei personaggi.
- Retry Edge in assenza di audio senza limite artificiale.
- Arresto del retry infinito per parametri voce non validi.
- Retry per audio vuoto o errore di decodifica.
- Parallelismo Edge limitato a otto operazioni.
- Esclusione dei motori SAPI dai batch paralleli Edge.
La workflow .github/workflows/ci.yml ora:
- configura Python 3.14;
- installa
bridge/requirements-test.txt; - esegue i 79 test Python;
- esegue successivamente
cargo test --all, che comprende gli 11 test Rust.
Lo script locale run_audio_description_tests.ps1 consente di eseguire entrambe le parti con un solo comando.
In questo ambiente non sono installati cargo, rustc, Win32 e le librerie FFmpeg Windows necessarie alla compilazione completa di Sonarpad. I 79 test Python sono stati realmente eseguiti e superati. Gli 11 test Rust sono stati controllati staticamente, ma devono essere compilati ed eseguiti su Windows con:
cargo test omni_port_ -- --nocapture
La CI Windows è configurata per eseguirli automaticamente attraverso il normale cargo test --all.