6
6
from collections import defaultdict
7
7
from collections import deque
8
8
from collections import OrderedDict
9
+ from typing import Any
9
10
from typing import Dict
10
11
from typing import List
12
+ from typing import Optional
11
13
from typing import Tuple
12
14
13
15
import attr
@@ -886,15 +888,13 @@ def finish(self, request):
886
888
del self .cached_result
887
889
self ._finalizers = []
888
890
889
- def execute (self , request ) :
891
+ def execute (self , request : SubRequest ) -> Optional [ Any ] :
890
892
for argname in self ._dependee_fixture_argnames (request ):
891
893
if argname == "request" :
892
894
continue
893
895
fixturedef = request ._get_active_fixturedef (argname )
894
896
if not self ._will_be_finalized_by_fixture (fixturedef ):
895
- fixturedef .addfinalizer (
896
- functools .partial (self .finish , request = request )
897
- )
897
+ fixturedef .addfinalizer (functools .partial (self .finish , request = request ))
898
898
899
899
my_cache_key = self .cache_key (request )
900
900
cached_result = getattr (self , "cached_result" , None )
@@ -914,7 +914,7 @@ def execute(self, request):
914
914
hook = self ._fixturemanager .session .gethookproxy (request .node .fspath )
915
915
return hook .pytest_fixture_setup (fixturedef = self , request = request )
916
916
917
- def _will_be_finalized_by_fixture (self , fixturedef ) :
917
+ def _will_be_finalized_by_fixture (self , fixturedef : "FixtureDef" ) -> bool :
918
918
"""Whether or not this fixture be finalized by the passed fixture.
919
919
920
920
Every ``:class:FixtureDef`` keeps a list of all the finishers (tear downs) of
@@ -933,7 +933,7 @@ def _will_be_finalized_by_fixture(self, fixturedef):
933
933
return True
934
934
return False
935
935
936
- def _dependee_fixture_argnames (self , request ) :
936
+ def _dependee_fixture_argnames (self , request : SubRequest ) -> Tuple [ str , ...] :
937
937
"""A list of argnames for fixtures that this fixture depends on.
938
938
939
939
Given a request, this looks at the currently known list of fixture argnames, and
@@ -976,7 +976,7 @@ def _dependee_fixture_argnames(self, request):
976
976
current_fix_index = len (request .fixturenames )
977
977
parent_fixture_indexes = set ()
978
978
979
- parent_request = request . _parent_request
979
+ parent_request = getattr ( request , " _parent_request" )
980
980
while hasattr (parent_request , "_parent_request" ):
981
981
if hasattr (parent_request , "_fixturedef" ):
982
982
parent_fix_name = parent_request ._fixturedef .argname
@@ -986,7 +986,7 @@ def _dependee_fixture_argnames(self, request):
986
986
987
987
stack_slice_index = min ([current_fix_index , * parent_fixture_indexes ])
988
988
active_fixture_argnames = all_fix_names [:stack_slice_index ]
989
- return tuple (active_fixture_argnames ) + self .argnames
989
+ return tuple (tuple ( active_fixture_argnames ) + self .argnames )
990
990
991
991
def cache_key (self , request ):
992
992
return request .param_index if not hasattr (request , "param" ) else request .param
0 commit comments