@@ -543,7 +543,11 @@ def __init__(self, request: FixtureRequest, tmpdir_factory: TempdirFactory) -> N
543
543
self ._mod_collections = (
544
544
WeakKeyDictionary ()
545
545
) # type: WeakKeyDictionary[Module, List[Union[Item, Collector]]]
546
- name = request .function .__name__
546
+ if request .function :
547
+ name = request .function .__name__ # type: str
548
+ else :
549
+ name = request .node .name
550
+ self ._name = name
547
551
self .tmpdir = tmpdir_factory .mktemp (name , numbered = True )
548
552
self .test_tmproot = tmpdir_factory .mktemp ("tmp-" + name , numbered = True )
549
553
self .plugins = [] # type: List[Union[str, _PluggyPlugin]]
@@ -617,7 +621,7 @@ def to_text(s):
617
621
618
622
if lines :
619
623
source = "\n " .join (to_text (x ) for x in lines )
620
- basename = self .request . function . __name__
624
+ basename = self ._name
621
625
items .insert (0 , (basename , source ))
622
626
623
627
ret = None
@@ -720,7 +724,7 @@ def copy_example(self, name=None):
720
724
example_dir = example_dir .join (* extra_element .args )
721
725
722
726
if name is None :
723
- func_name = self .request . function . __name__
727
+ func_name = self ._name
724
728
maybe_dir = example_dir / func_name
725
729
maybe_file = example_dir / (func_name + ".py" )
726
730
@@ -1059,7 +1063,7 @@ def getmodulecol(self, source, configargs=(), withinit=False):
1059
1063
path = self .tmpdir .join (str (source ))
1060
1064
assert not withinit , "not supported for paths"
1061
1065
else :
1062
- kw = {self .request . function . __name__ : Source (source ).strip ()}
1066
+ kw = {self ._name : Source (source ).strip ()}
1063
1067
path = self .makepyfile (** kw )
1064
1068
if withinit :
1065
1069
self .makepyfile (__init__ = "#" )
0 commit comments