test(backend): add comprehensive test coverage for backend modules

Added a new `.coveragerc` file configuring coverage thresholds and exclusions.
Included `pytest.ini` to enable coverage reporting for multiple backend modules (`main`, `llm`, `prompt`, `geoip`, `tts_asr`) with a 90 % fail‑under requirement and detailed HTML output.
Implemented a suite of unit tests:

* `test_geoip.py` – validates geo‑location lookup logic.
* `test_llm_extended.py` – tests LLm response extraction and Ollama interactions.
* `test_main_endpoints.py` – covers API endpoints for completions, OCR, and TTS.
* `test_prompt_extended.py` – verifies language sanitization, timestamp generation, and prompt building.
* `test_tts_asr_coverage.py` – checks device detection, cache clearing, and model loading under various environment configurations.
* `test_tts_asr_extended.py` – further tests TTS/ASR device selection and time‑outs.

Updated `backend/requirements.txt` to use newer, compatible packages, removed obsolete testing dependencies, and added `qwen-tts`.
Modified `backend/tts_asr.py` to work with the new `Qwen3TTSModel`, simplified imports, and adjusted device mapping logic.

Additionally, frontend changes added a new `TreeNodeItem` component, updated Markdown rendering, added TTS instruction fields, and reworked context menu handling.

No breaking changes were introduced.
This commit is contained in:
2026-04-07 23:38:23 +08:00
parent bece7be267
commit 2fdc996af9
19 changed files with 3420 additions and 2325 deletions
+12 -26
View File
@@ -1,27 +1,13 @@
fastapi
uvicorn
ollama
pydantic
python-dotenv
httpx
geoip2
markitdown[all]
python-docx
python-pptx
openpyxl
pypdf
fastapi>=0.95.0
uvicorn[standard]>=0.23.0
pydantic>=1.10.0
numpy>=1.23.0
soundfile>=0.10.3
torch>=1.12.0
torchaudio>=0.12.0
transformers>=4.25.0
whisper>=1.0.0
qwen-tts>=0.0.0
# TTS and ASR dependencies
torch
transformers
soundfile
numpy
accelerate
librosa
psutil
torchaudio
# Test dependencies
pytest
pytest-cov
pytest-asyncio
# testing
pytest>=7.0.0