testsAndMisc/linux_configuration/tests
Krzysztof kuhy Rudnicki fb51e991fe _transcribe_diarize: cover 0% -> 100% before splitting
The largest untested Python file left in the repo, at 356 lines against the
cap. Tests land first so the split that follows is verified against tests
that predate the seam.

63 tests: duration probing through both ffmpeg paths, the transcode fallback
and temp-file cleanup, audio loading's three outcomes, linear resampling,
cosine k-means, the ECAPA classifier loader, per-segment embedding
extraction, and diarize_segments end to end.

numpy is real here, not a double. It is a declared dependency, and the core
of this file is clustering maths - assertions against a mocked numpy would
prove nothing about whether two speakers actually get two labels. The
_try_import seam passes numpy through while stubbing torch and speechbrain,
so the tests still run in CI with neither installed. The clustering tests
assert real properties: two opposed groups separate, magnitude is ignored
because the metric is cosine, and a fixed seed reproduces.

The last three coverage gaps were _load_audio's ffmpeg fallback in both
outcomes, the minimum-slice widening, and the zero-iteration k-means branch.

Split across six test modules after two intermediate arrangements went over
the cap, and one move silently broke a test by separating it from its
doubles - caught by the test count holding at 63 through every rearrangement.
338 tests pass in the directory, up from 275 by exactly the 63 added.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011w2Pj4Ek3ZNMQVYcFHgXDY
2026-08-17 13:54:04 +02:00
..
lib Split install_pacman_wrapper.sh into an entry plus four libs 2026-08-17 07:42:31 +02:00
__init__.py Harden runtime script deployment and enforce installer safety 2026-05-08 17:44:22 +02:00
conftest.py transcribe_helpers: cover 0% -> 100% before splitting 2026-08-17 13:29:07 +02:00
test_android_guardian_post_fs_data.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
test_android_guardian_service.sh Fail the build on any shellcheck finding; fix the 222 the old gate hid 2026-08-03 19:49:11 +02:00
test_fast_count.py refactor: extract all inline Python from shell scripts into proper .py files 2026-06-06 10:31:48 +02:00
test_hosts_file_monitor.sh Run Arch-only shell tests in a container; harden worktree stubbing 2026-07-19 19:27:36 +02:00
test_hosts_guard_pacman_integration.sh Fail the build on any shellcheck finding; fix the 222 the old gate hid 2026-08-03 19:49:11 +02:00
test_i3blocks_efficiency.sh Split the last two over-cap shell test suites 2026-08-16 22:27:44 +02:00
test_i3blocks_persist_common.sh feat(digital-wellbeing): time-boxed shutdown overrides + drift-proof i3blocks deploy 2026-07-10 21:57:05 +02:00
test_makepkg_capped.sh Run Arch-only shell tests in a container; harden worktree stubbing 2026-07-19 19:27:36 +02:00
test_makepkg_wrapper.sh fix(pacman): wrap makepkg so an orphaned db.lck can't hang makepkg -i 2026-07-17 07:46:31 +02:00
test_monitor_report.py refactor: extract all inline Python from shell scripts into proper .py files 2026-06-06 10:31:48 +02:00
test_music_parallelism.sh Split music_parallelism.sh into an entry script and three libs 2026-08-16 21:50:34 +02:00
test_network_diagnostics.bats Add network diagnostics: duty-cycle and line-speed probes 2026-07-19 18:46:18 +02:00
test_pacman_wrapper_security.sh Split install_pacman_wrapper.sh into an entry plus four libs 2026-08-17 07:42:31 +02:00
test_security_hardening.sh Split test_security_hardening.sh; finish the mutation-driver split 2026-08-16 22:24:02 +02:00
test_session_autopsy_hooks.py Point the hook test at the extracted session_autopsy, add the artifacts 2026-07-26 20:50:44 +02:00
test_setup_dns_blocker.sh feat: add Pi-hole-like LAN DNS blocking served from the PC (dnsmasq) 2026-07-10 19:02:46 +02:00
test_shutdown_timer_monitor.sh Fail the build on any shellcheck finding; fix the 222 the old gate hid 2026-08-03 19:49:11 +02:00
test_strip_workout_hosts.py Make focus policy and blocklist usable without root; fix workout CDN unblock 2026-08-05 09:15:02 +02:00
test_transcribe_diarize_audio.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_diarize_classifier.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_diarize_cluster.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_diarize_pipeline.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_diarize_probe.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_diarize_segments.py _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
test_transcribe_fw_main.py transcribe_fw: cover 0% -> 100% before splitting 2026-08-17 13:40:47 +02:00
test_transcribe_fw_pipeline.py transcribe_fw: cover 0% -> 100% before splitting 2026-08-17 13:40:47 +02:00
test_transcribe_fw_progress.py transcribe_fw: split 302 -> 236 + 91 2026-08-17 13:43:49 +02:00
test_transcribe_helpers_cli.py transcribe_helpers: cover 0% -> 100% before splitting 2026-08-17 13:29:07 +02:00
test_transcribe_model_ops.py transcribe_helpers: split 289 -> 177 + 142 2026-08-17 13:33:38 +02:00
test_transcribe_probes.py transcribe_helpers: split 289 -> 177 + 142 2026-08-17 13:33:38 +02:00
test_transcribe_wav.py transcribe_helpers: split 289 -> 177 + 142 2026-08-17 13:33:38 +02:00
test_usage_monitoring_installer_efficiency.sh Split install_usage_monitoring.sh into an entry plus five libs 2026-08-17 07:26:56 +02:00
test_usage_report_aggregate.py usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
test_usage_report_atop_build.py usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
test_usage_report_atop_io.py usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
test_usage_report_atop_pipeline.py usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
test_usage_report_cli.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_emit.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_format.py usage_report: split _usage_report_render.py 310 -> 181 + 123 + 24 2026-08-17 11:34:08 +02:00
test_usage_report_gpu_table.py usage_report: split _usage_report_render.py 310 -> 181 + 123 + 24 2026-08-17 11:34:08 +02:00
test_usage_report_host.py usage_report: split _usage_report_render.py 310 -> 181 + 123 + 24 2026-08-17 11:34:08 +02:00
test_usage_report_merge.py usage_report: split test_usage_report_since.py 480 -> 186 + 145 + 178 2026-08-17 10:40:06 +02:00
test_usage_report_modes.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_parse_records.py usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
test_usage_report_pmon_names.py feat: split oversized modules for 500-line limit, fix kasa coverage gap 2026-06-14 07:19:37 +02:00
test_usage_report_render.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_run_since.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_segments.py usage_report: delete the dead _compute_window shim 2026-08-17 12:57:52 +02:00
test_usage_report_since.py usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
test_usage_report_tables.py usage_report: split _usage_report_render.py 310 -> 181 + 123 + 24 2026-08-17 11:34:08 +02:00
test_validate_contract.py refactor: extract all inline Python from shell scripts into proper .py files 2026-06-06 10:31:48 +02:00
test_validate_evidence.py refactor: extract all inline Python from shell scripts into proper .py files 2026-06-06 10:31:48 +02:00