security_requirement = None
security_scopes = security_scopes or []
if isinstance(depends, params.Security):
- dependency_scopes = depends.scopes
- security_scopes.extend(dependency_scopes)
+ if depends.scopes:
+ security_scopes.extend(depends.scopes)
if isinstance(dependency, SecurityBase):
use_scopes: List[str] = []
if isinstance(dependency, (OAuth2, OpenIdConnect)):
import warnings
+from dataclasses import dataclass
from enum import Enum
from typing import Any, Callable, Dict, List, Optional, Sequence, Union
)
+@dataclass
class Depends:
- def __init__(
- self, dependency: Optional[Callable[..., Any]] = None, *, use_cache: bool = True
- ):
- self.dependency = dependency
- self.use_cache = use_cache
-
- def __repr__(self) -> str:
- attr = getattr(self.dependency, "__name__", type(self.dependency).__name__)
- cache = "" if self.use_cache else ", use_cache=False"
- return f"{self.__class__.__name__}({attr}{cache})"
+ dependency: Optional[Callable[..., Any]] = None
+ use_cache: bool = True
+@dataclass
class Security(Depends):
- def __init__(
- self,
- dependency: Optional[Callable[..., Any]] = None,
- *,
- scopes: Optional[Sequence[str]] = None,
- use_cache: bool = True,
- ):
- super().__init__(dependency=dependency, use_cache=use_cache)
- self.scopes = scopes or []
+ scopes: Optional[Sequence[str]] = None
from typing import Any, List
from dirty_equals import IsOneOf
-from fastapi.params import Body, Cookie, Depends, Header, Param, Path, Query
+from fastapi.params import Body, Cookie, Header, Param, Path, Query
test_data: List[Any] = ["teststr", None, ..., 1, []]
def test_body_repr_list():
assert repr(Body([])) == "Body([])"
-
-
-def test_depends_repr():
- assert repr(Depends()) == "Depends(NoneType)"
- assert repr(Depends(get_user)) == "Depends(get_user)"
- assert repr(Depends(use_cache=False)) == "Depends(NoneType, use_cache=False)"
- assert (
- repr(Depends(get_user, use_cache=False)) == "Depends(get_user, use_cache=False)"
- )