failed WRONG_FIX UNSUBMITTED wrong_fix_unsubmitted(None) · None tool calls · 0 s · fastapi/fastapi
(not found in data/tasks.jsonl)
| # | Tool | Arguments | Result |
|---|---|---|---|
| No trace captured. | |||
--- a/fastapi/routing.py
+++ b/fastapi/routing.py
@@ -7,6 +7,7 @@ import inspect
import json
import os
import stat
+import threading
import types
from collections.abc import (
AsyncIterator,
@@ -1571,6 +1572,9 @@ class RouteContext:
class _IncludedRouter(BaseRoute):
original_router: "APIRouter"
include_context: _RouterIncludeContext
+ _effective_routes_lock: Any = field(
+ default_factory=threading.Lock, repr=False, compare=False
+ )
_effective_candidates: list["_EffectiveRouteContext | _IncludedRouter"] = field(
default_factory=list
)
@@ -1584,44 +1588,53 @@ class _IncludedRouter(BaseRoute):
routes_version = self.original_router._get_routes_version()
if routes_version == self._effective_candidates_version:
return self._effective_candidates
- self._effective_candidates = []
- candidates = self.original_router.routes
- for route in candidates:
- if isinstance(route, _IncludedRouter):
- child_context = self.include_context.combine(route.include_context)
- child_branch = _IncludedRouter(
- original_router=route.original_router,
- include_context=child_context,
- )
- self._effective_candidates.append(child_branch)
- continue
- route_context = self._build_effective_context(route)
- if route_context is not None:
- self._effective_candidates.append(route_context)
- self._effective_candidates_version = routes_version
- return self._effective_candidates
+ with self._effective_routes_lock:
+ routes_version = self.original_router._get_routes_version()
+ if routes_version == self._effective_candidates_version:
+ return self._effective_candidates
+ effective_candidates: list[_EffectiveRouteContext | _IncludedRouter] = []
+ for route in self.original_router.routes:
+ if isinstance(route, _IncludedRouter):
+ child_context = self.include_context.combine(route.include_context)
+ child_branch = _IncludedRouter(
+ original_router=route.original_router,
+ include_context=child_context,
+ )
+ effective_candidates.append(child_branch)
+ continue
+ route_context = self._build_effective_context(route)
+ if route_context is not None:
+ effective_candidates.append(route_context)
+ self._effective_candidates = effective_candidates
+ self._effective_candidates_version = routes_version
+ return effective_candidates
def effective_low_priority_routes(self) -> list["_EffectiveRouteContext"]:
routes_version = self.original_router._get_routes_version()
if routes_version == self._effective_low_priority_routes_version:
return self._effective_low_priority_routes
- self._effective_low_priority_routes = []
- for route in self.original_router._low_priority_routes:
- route_context = self._build_effective_context(route)
- if route_context is not None:
- self._effective_low_priority_routes.append(route_context)
- for route in self.original_router.routes:
- if isinstance(route, _IncludedRouter):
- child_context = self.include_context.combine(route.include_context)
- child_branch = _IncludedRouter(
- original_router=route.original_router,
- include_context=child_context,
- )
- self._effective_low_priority_routes.extend(
- child_branch.effective_low_priority_routes()
- )
- self._effective_low_priority_routes_version = routes_version
- return self._effective_low_priority_routes
+ with self._effective_routes_lock:
+ routes_version = self.original_router._get_routes_version()
+ if routes_version == self._effective_low_priority_routes_version:
+ return self._effective_low_priority_routes
+ effective_low_priority_routes: list[_EffectiveRouteContext] = []
+ for route in self.original_router._low_priority_routes:
+ route_context = self._build_effective_context(route)
+ if route_context is not None:
+ effective_low_priority_routes.append(route_context)
+ for route in self.original_router.routes:
+ if isinstance(route, _IncludedRouter):
+ child_context = self.include_context.combine(route.include_context)
+ child_branch = _IncludedRouter(
+ original_router=route.original_router,
+ include_context=child_context,
+ )
+ effective_low_priority_routes.extend(
+ child_branch.effective_low_priority_routes()
+ )
+ self._effective_low_priority_routes = effective_low_priority_routes
+ self._effective_low_priority_routes_version = routes_version
+ return effective_low_priority_routes
def _build_effective_context(
self, route: BaseRoute
...........................F
=================================== FAILURES ===================================
________ test_included_api_route_without_app_scope_returns_405_response ________
async def functions are not natively supported.
You need to install a suitable plugin for your async framework, for example:
- anyio
- pytest-asyncio
- pytest-tornasync
- pytest-trio
- pytest-twisted
=============================== warnings summary ===============================
../../../../../../../Users/jp/repos/kaggle-gemini-coding-agent-post-training/.envs/overlays/starlette-1.6.0-py3-none-any/starlette/testclient.py:53
/Users/jp/repos/kaggle-gemini-coding-agent-post-training/.envs/overlays/starlette-1.6.0-py3-none-any/starlette/testclient.py:53: DeprecationWarning: The anyio.abc.BlockingPortal alias is deprecated, use anyio.from_thread.BlockingPortal instead.
_PortalFactoryType = Callable[[], AbstractContextManager[anyio.abc.BlockingPortal]]
tests/test_router_include_context.py:754
/private/tmp/swe_work/mined_oracle/fastapi_16013/b/workspace/tests/test_router_include_context.py:754: PytestUnknownMarkWarning: Unknown pytest.mark.anyio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.anyio
tests/test_router_include_context.py:868
/private/tmp/swe_work/mined_oracle/fastapi_16013/b/workspace/tests/test_router_include_context.py:868: PytestUnknownMarkWarning: Unknown pytest.mark.anyio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.anyio
tests/test_router_include_context.py:1044
/private/tmp/swe_work/mined_oracle/fastapi_16013/b/workspace/tests/test_router_include_context.py:1044: PytestUnknownMarkWarning: Unknown pytest.mark.anyio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.anyio
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
1 failed, 27 passed, 4 warnings in 0.78s