From f9cc73867e9aa58073423a07f2fde718cb9939df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Valur=20J=C3=B3nsson?= Date: Fri, 11 Nov 2022 14:38:32 +0000 Subject: [PATCH] Add fix to scope propagation: Do not mutate incoming list. --- fastapi/dependencies/utils.py | 2 +- tests/test_dependency_scopes.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index 3df5ccfc8..bebbbe954 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -147,7 +147,7 @@ def get_sub_dependant( security_scopes = security_scopes or [] if isinstance(depends, params.Security): dependency_scopes = depends.scopes - security_scopes.extend(dependency_scopes) + security_scopes = security_scopes + list(dependency_scopes) if isinstance(dependency, SecurityBase): use_scopes: List[str] = [] if isinstance(dependency, (OAuth2, OpenIdConnect)): diff --git a/tests/test_dependency_scopes.py b/tests/test_dependency_scopes.py index 0d07cd305..957a0896e 100644 --- a/tests/test_dependency_scopes.py +++ b/tests/test_dependency_scopes.py @@ -47,7 +47,6 @@ def recursive_scopes(dep=Security(dep3, scopes=["scope3"])): client = TestClient(app) -@pytest.mark.xfail() # issue https://github.com/tiangolo/fastapi/issues/5623 def test_recursive_scopes(mocks): """