66from collections import defaultdict
77from collections import deque
88from collections import OrderedDict
9+ from typing import Any
910from typing import Dict
1011from typing import List
12+ from typing import Optional
1113from typing import Tuple
1214
1315import attr
@@ -886,15 +888,13 @@ def finish(self, request):
886888 del self .cached_result
887889 self ._finalizers = []
888890
889- def execute (self , request ) :
891+ def execute (self , request : SubRequest ) -> Optional [ Any ] :
890892 for argname in self ._dependee_fixture_argnames (request ):
891893 if argname == "request" :
892894 continue
893895 fixturedef = request ._get_active_fixturedef (argname )
894896 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 ))
898898
899899 my_cache_key = self .cache_key (request )
900900 cached_result = getattr (self , "cached_result" , None )
@@ -914,7 +914,7 @@ def execute(self, request):
914914 hook = self ._fixturemanager .session .gethookproxy (request .node .fspath )
915915 return hook .pytest_fixture_setup (fixturedef = self , request = request )
916916
917- def _will_be_finalized_by_fixture (self , fixturedef ) :
917+ def _will_be_finalized_by_fixture (self , fixturedef : "FixtureDef" ) -> bool :
918918 """Whether or not this fixture be finalized by the passed fixture.
919919
920920 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):
933933 return True
934934 return False
935935
936- def _dependee_fixture_argnames (self , request ) :
936+ def _dependee_fixture_argnames (self , request : SubRequest ) -> Tuple [ str , ...] :
937937 """A list of argnames for fixtures that this fixture depends on.
938938
939939 Given a request, this looks at the currently known list of fixture argnames, and
@@ -976,7 +976,7 @@ def _dependee_fixture_argnames(self, request):
976976 current_fix_index = len (request .fixturenames )
977977 parent_fixture_indexes = set ()
978978
979- parent_request = request . _parent_request
979+ parent_request = getattr ( request , " _parent_request" )
980980 while hasattr (parent_request , "_parent_request" ):
981981 if hasattr (parent_request , "_fixturedef" ):
982982 parent_fix_name = parent_request ._fixturedef .argname
@@ -986,7 +986,7 @@ def _dependee_fixture_argnames(self, request):
986986
987987 stack_slice_index = min ([current_fix_index , * parent_fixture_indexes ])
988988 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 )
990990
991991 def cache_key (self , request ):
992992 return request .param_index if not hasattr (request , "param" ) else request .param
0 commit comments