fix: resolve mypy errors, fix arxiv test session isolation, and add premerge script

- Remove unused type:ignore comment in scholars.py
- Fix 51 mypy errors across test files (Any return types, cast(), protocol stubs)
- Fix arxiv unit test failures caused by session isolation (patch_session_factory fixture)
- Fix integration test rate-limit bleed between search and create
- Add scripts/premerge.sh for local CI verification
- Add docs/website/.docusaurus/ to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Justin Visser 2026-03-02 12:46:10 +01:00
parent 49cf7034b2
commit 87aa89b58c
17 changed files with 129 additions and 28 deletions

View file

@ -1,5 +1,6 @@
from __future__ import annotations
from typing import Any
from unittest.mock import MagicMock
from app.services.portability.publication_import import (
@ -9,14 +10,14 @@ from app.services.portability.publication_import import (
)
def _mock_profile(scholar_id: str = "ABC123DEF456") -> MagicMock:
def _mock_profile(scholar_id: str = "ABC123DEF456") -> Any:
profile = MagicMock()
profile.id = 1
profile.scholar_id = scholar_id
return profile
def _scholar_map(scholar_id: str = "ABC123DEF456") -> dict[str, MagicMock]:
def _scholar_map(scholar_id: str = "ABC123DEF456") -> dict[str, Any]:
return {scholar_id: _mock_profile(scholar_id)}