@@ -357,11 +357,13 @@ def _genfunctions(self, name, funcobj):
357
357
fixtures .add_funcarg_pseudo_fixture_def (self , metafunc , fm )
358
358
359
359
for callspec in metafunc ._calls :
360
- subname = "%s[%s]" % (name , callspec .id )
360
+ subname = "%s[%s]" % (name , callspec .id )
361
361
yield Function (name = subname , parent = self ,
362
362
callspec = callspec , callobj = funcobj ,
363
363
fixtureinfo = fixtureinfo ,
364
- keywords = {callspec .id :True })
364
+ keywords = {callspec .id :True },
365
+ originalname = name ,
366
+ )
365
367
366
368
367
369
def _marked (func , mark ):
@@ -1471,7 +1473,7 @@ class Function(FunctionMixin, pytest.Item, fixtures.FuncargnamesCompatAttr):
1471
1473
_genid = None
1472
1474
def __init__ (self , name , parent , args = None , config = None ,
1473
1475
callspec = None , callobj = NOTSET , keywords = None , session = None ,
1474
- fixtureinfo = None ):
1476
+ fixtureinfo = None , originalname = None ):
1475
1477
super (Function , self ).__init__ (name , parent , config = config ,
1476
1478
session = session )
1477
1479
self ._args = args
@@ -1493,6 +1495,12 @@ def __init__(self, name, parent, args=None, config=None,
1493
1495
self .fixturenames = fixtureinfo .names_closure
1494
1496
self ._initrequest ()
1495
1497
1498
+ #: original function name, without any decorations (for example
1499
+ #: parametrization adds a ``"[...]"`` suffix to function names).
1500
+ #:
1501
+ #: .. versionadded:: 3.0
1502
+ self .originalname = originalname
1503
+
1496
1504
def _initrequest (self ):
1497
1505
self .funcargs = {}
1498
1506
if self ._isyieldedfunction ():
0 commit comments