Browse Source

fix: rewrite dict() as literal and add coverage for _accepts_kwarg fallback

pull/15546/head
theshyxin 2 months ago
parent
commit
ea5f21c51b
  1. 52
      fastapi/routing.py
  2. 2
      tests/test_custom_route_class.py

52
fastapi/routing.py

@ -1410,32 +1410,32 @@ class APIRouter(routing.Router):
current_generate_unique_id = get_value_or_default( current_generate_unique_id = get_value_or_default(
generate_unique_id_function, self.generate_unique_id_function generate_unique_id_function, self.generate_unique_id_function
) )
route_kwargs: dict[str, Any] = dict( route_kwargs: dict[str, Any] = {
response_model=response_model, "response_model": response_model,
status_code=status_code, "status_code": status_code,
tags=current_tags, "tags": current_tags,
dependencies=current_dependencies, "dependencies": current_dependencies,
summary=summary, "summary": summary,
description=description, "description": description,
response_description=response_description, "response_description": response_description,
responses=combined_responses, "responses": combined_responses,
deprecated=deprecated or self.deprecated, "deprecated": deprecated or self.deprecated,
methods=methods, "methods": methods,
operation_id=operation_id, "operation_id": operation_id,
response_model_include=response_model_include, "response_model_include": response_model_include,
response_model_exclude=response_model_exclude, "response_model_exclude": response_model_exclude,
response_model_by_alias=response_model_by_alias, "response_model_by_alias": response_model_by_alias,
response_model_exclude_unset=response_model_exclude_unset, "response_model_exclude_unset": response_model_exclude_unset,
response_model_exclude_defaults=response_model_exclude_defaults, "response_model_exclude_defaults": response_model_exclude_defaults,
response_model_exclude_none=response_model_exclude_none, "response_model_exclude_none": response_model_exclude_none,
include_in_schema=include_in_schema and self.include_in_schema, "include_in_schema": include_in_schema and self.include_in_schema,
response_class=current_response_class, "response_class": current_response_class,
name=name, "name": name,
dependency_overrides_provider=self.dependency_overrides_provider, "dependency_overrides_provider": self.dependency_overrides_provider,
callbacks=current_callbacks, "callbacks": current_callbacks,
openapi_extra=openapi_extra, "openapi_extra": openapi_extra,
generate_unique_id_function=current_generate_unique_id, "generate_unique_id_function": current_generate_unique_id,
) }
if _accepts_kwarg(route_class, "strict_content_type"): if _accepts_kwarg(route_class, "strict_content_type"):
route_kwargs["strict_content_type"] = get_value_or_default( route_kwargs["strict_content_type"] = get_value_or_default(
strict_content_type, self.strict_content_type strict_content_type, self.strict_content_type

2
tests/test_custom_route_class.py

@ -241,7 +241,7 @@ def test_accepts_kwarg_signature_error():
"""Cover the fallback when inspect.signature raises (line 826-827).""" """Cover the fallback when inspect.signature raises (line 826-827)."""
from unittest.mock import patch from unittest.mock import patch
from fastapi.routing import _accepts_kwarg, _ACCEPTS_KWARG_CACHE from fastapi.routing import _ACCEPTS_KWARG_CACHE, _accepts_kwarg
class SimpleRoute: class SimpleRoute:
def __init__(self, x): def __init__(self, x):

Loading…
Cancel
Save