chore: run ty on tests/ and make the new ingest tests pass it
Stop excluding tests/ from the ty-check pre-commit hook so touched test files are type-checked. Fix the new ingest tests under the now-active check: - cast duck-typed JobContext / App test doubles to their declared types; - narrow the gated Postgres fixture's str | None URL (pytest.skip isn't modelled as NoReturn by ty). Pre-existing type issues in untouched test modules are unaffected (the hook checks only changed files); they'll be cleaned as those files are next touched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
21b7922bac
commit
3407e3cf64
@@ -22,5 +22,4 @@ repos:
|
||||
name: ty-check
|
||||
language: system
|
||||
types: [python]
|
||||
exclude: tests/.*
|
||||
entry: uv run ty check
|
||||
|
||||
@@ -57,6 +57,8 @@ def postgres_url() -> str:
|
||||
"`docker compose --profile postgres up -d postgres-test` and export "
|
||||
"TEST_DATABASE_URL=postgresql+asyncpg://mcp:mcp@localhost:5433/mcp"
|
||||
)
|
||||
# pytest.skip raises, but ty doesn't model it as NoReturn — narrow explicitly.
|
||||
assert url is not None
|
||||
if not _reachable(url):
|
||||
pytest.skip(f"Postgres at {url} is not reachable")
|
||||
return url
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
Uses procrastinate's in-memory connector so no live Postgres is required.
|
||||
"""
|
||||
|
||||
from typing import cast
|
||||
from unittest.mock import AsyncMock
|
||||
|
||||
import pytest
|
||||
from procrastinate import testing
|
||||
from procrastinate import App, JobContext, testing
|
||||
|
||||
import nextcloud_mcp_server.vector.queue.procrastinate as pq
|
||||
from nextcloud_mcp_server.vector.scanner import DocumentTask
|
||||
@@ -158,7 +159,7 @@ class TestReclaimStalledJobs:
|
||||
class Ctx:
|
||||
app = FakeApp()
|
||||
|
||||
await pq.reclaim_stalled_ingest_jobs(Ctx(), timestamp=0)
|
||||
await pq.reclaim_stalled_ingest_jobs(cast(JobContext, Ctx()), timestamp=0)
|
||||
assert retried == [1, 2]
|
||||
|
||||
|
||||
@@ -184,7 +185,7 @@ class TestGetIngestJobCounts:
|
||||
class FakeApp:
|
||||
job_manager = FakeManager()
|
||||
|
||||
counts = await pq.get_ingest_job_counts(FakeApp())
|
||||
counts = await pq.get_ingest_job_counts(cast(App, FakeApp()))
|
||||
assert counts["todo"] == 3
|
||||
assert counts["doing"] == 1
|
||||
assert counts["failed"] == 2
|
||||
|
||||
Reference in New Issue
Block a user