51
51
)
52
52
53
53
if sys .version_info >= (3 , 10 ):
54
- from typing import ParamSpec
54
+ from typing import Concatenate , ParamSpec
55
55
else :
56
- from typing_extensions import ParamSpec
56
+ from typing_extensions import Concatenate , ParamSpec
57
57
58
58
59
59
_ScopeName = Literal ["session" , "package" , "module" , "class" , "function" ]
@@ -347,15 +347,22 @@ async def async_finalizer() -> None:
347
347
return _asyncgen_fixture_wrapper
348
348
349
349
350
+ AsyncFixtureParams = ParamSpec ("AsyncFixtureParams" )
350
351
AsyncFixtureReturnType = TypeVar ("AsyncFixtureReturnType" )
351
352
352
353
353
354
def _wrap_async_fixture (
354
- fixture_function : Callable [..., CoroutineType [Any , Any , AsyncFixtureReturnType ]],
355
- ) -> Callable [..., AsyncFixtureReturnType ]:
355
+ fixture_function : Callable [
356
+ AsyncFixtureParams , CoroutineType [Any , Any , AsyncFixtureReturnType ]
357
+ ],
358
+ ) -> Callable [Concatenate [FixtureRequest , AsyncFixtureParams ], AsyncFixtureReturnType ]:
356
359
357
360
@functools .wraps (fixture_function ) # type: ignore[arg-type]
358
- def _async_fixture_wrapper (request : FixtureRequest , ** kwargs : Any ):
361
+ def _async_fixture_wrapper (
362
+ request : FixtureRequest ,
363
+ * args : AsyncFixtureParams .args ,
364
+ ** kwargs : AsyncFixtureParams .kwargs ,
365
+ ):
359
366
func = _perhaps_rebind_fixture_func (fixture_function , request .instance )
360
367
event_loop_fixture_id = _get_event_loop_fixture_id_for_async_fixture (
361
368
request , func
@@ -364,7 +371,7 @@ def _async_fixture_wrapper(request: FixtureRequest, **kwargs: Any):
364
371
kwargs .pop (event_loop_fixture_id , None )
365
372
366
373
async def setup ():
367
- res = await func (** _add_kwargs (func , kwargs , request ))
374
+ res = await func (* args , * *_add_kwargs (func , kwargs , request ))
368
375
return res
369
376
370
377
context = contextvars .copy_context ()
0 commit comments