fix(types): resolve pre-existing basedpyright errors in tests

Fix ~790 basedpyright errors across the test suite:
- Type stub subclasses of real production classes with super().__init__()
- Add missing generic type arguments and Dict[str, Any] annotations
- Add None guards before subscript/member access
- Adapt tests to production API changes (removed dead handlers,
  PersistentModelCache.get_default, _i18n_filter_added location)
This commit is contained in:
Will Miao
2026-08-08 20:12:59 +08:00
parent 8e724538bd
commit d2f955266d
95 changed files with 953 additions and 666 deletions

View File

@@ -6,10 +6,10 @@ from pathlib import Path
import types
from dataclasses import dataclass, field
from typing import Optional
from typing import Any, Optional
folder_paths_stub = types.SimpleNamespace(get_folder_paths=lambda *_: [])
sys.modules.setdefault("folder_paths", folder_paths_stub)
sys.modules.setdefault("folder_paths", folder_paths_stub) # pyright: ignore[reportArgumentType]
import pytest
from aiohttp import FormData, web
@@ -38,7 +38,9 @@ class DummyRoutes(BaseModelRoutes):
def __init__(self, service=None):
super().__init__(service)
self.set_model_update_service(NullModelUpdateService())
self.set_model_update_service(
NullModelUpdateService() # pyright: ignore[reportArgumentType]
)
@dataclass
@@ -110,7 +112,7 @@ class NullModelUpdateService:
return None
async def create_test_client(service) -> TestClient:
async def create_test_client(service) -> TestClient[Any, Any]:
routes = DummyRoutes(service)
app = web.Application()
routes.setup_routes(app, "test-models")
@@ -457,18 +459,18 @@ def test_fetch_civitai_hydrates_metadata_before_sync(
mock_scanner._cache.raw_data = [minimal_cache_entry]
class FakeMetadata:
def __init__(self, payload: dict) -> None:
def __init__(self, payload: dict[str, Any]) -> None:
self._payload = payload
self._unknown_fields = {"legacy_field": "legacy"}
def to_dict(self) -> dict:
def to_dict(self) -> dict[str, Any]:
return self._payload.copy()
async def fake_load_metadata(path: str, *_args, **_kwargs):
assert path == str(model_path)
return FakeMetadata(existing_metadata), False
async def fake_save_metadata(path: str, metadata: dict) -> bool:
async def fake_save_metadata(path: str, metadata: dict[str, Any]) -> bool:
save_calls.append((path, json.loads(json.dumps(metadata))))
return True
@@ -477,7 +479,7 @@ def test_fetch_civitai_hydrates_metadata_before_sync(
*,
sha256: str,
file_path: str,
model_data: dict,
model_data: dict[str, Any],
update_cache_func,
):
captured["model_data"] = json.loads(json.dumps(model_data))
@@ -490,8 +492,8 @@ def test_fetch_civitai_hydrates_metadata_before_sync(
await update_cache_func(file_path, file_path, model_data)
return True, None
save_calls: list[tuple[str, dict]] = []
captured: dict[str, dict] = {}
save_calls: list[tuple[str, dict[str, Any]]] = []
captured: dict[str, dict[str, Any]] = {}
monkeypatch.setattr(
MetadataManager, "load_metadata", staticmethod(fake_load_metadata)