feat: remove startup NFO repair, update docs and tests

- Remove NFO repair scan step from ARCHITECTURE.md startup sequence
- Update CHANGELOG.md: rephrase perform_nfo_repair_scan as scheduled scan
- Add test verifying perform_nfo_repair_scan is NOT called in lifespan
- Keep existing folder scan wiring tests and unit tests intact
- NFO_GUIDE.md already correctly describes scheduled scan behavior
This commit is contained in:
2026-05-13 09:23:21 +02:00
parent eb0e6e8ccb
commit 756731cd5d
9 changed files with 1226 additions and 16 deletions

View File

@@ -1,14 +1,32 @@
"""Integration tests verifying perform_nfo_repair_scan is wired into folder scan.
"""Integration tests verifying perform_nfo_repair_scan is wired into folder scan
and NOT called during FastAPI lifespan startup.
These tests confirm that:
1. FolderScanService.run_folder_scan calls perform_nfo_repair_scan.
2. Series with incomplete NFO files are queued via asyncio.create_task.
2. perform_nfo_repair_scan is NOT imported or called in fastapi_app.py lifespan.
3. Series with incomplete NFO files are queued via asyncio.create_task.
"""
from unittest.mock import AsyncMock, MagicMock, call, patch
import pytest
class TestNfoRepairScanNotCalledOnStartup:
"""Verify perform_nfo_repair_scan is NOT invoked during FastAPI lifespan startup."""
def test_perform_nfo_repair_scan_not_imported_in_lifespan(self):
"""fastapi_app.py lifespan must not import or call perform_nfo_repair_scan."""
import importlib
source = importlib.util.find_spec("src.server.fastapi_app").origin
with open(source, "r", encoding="utf-8") as fh:
content = fh.read()
assert "perform_nfo_repair_scan" not in content, (
"perform_nfo_repair_scan must NOT be imported or called in fastapi_app.py"
)
class TestNfoRepairScanCalledInFolderScan:
"""Verify perform_nfo_repair_scan is invoked from FolderScanService."""