File tree Expand file tree Collapse file tree 2 files changed +18
-3
lines changed Expand file tree Collapse file tree 2 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -731,7 +731,19 @@ def pytest_generate_tests(metafunc: Metafunc) -> None:
731731 event_loop_fixture_id = event_loop_node .stash .get (_event_loop_fixture_id , None )
732732
733733 if event_loop_fixture_id :
734- if "event_loop" in metafunc .fixturenames :
734+ collectors = _iter_collectors (metafunc .definition )
735+ collector_event_loop_fixture_ids = map (
736+ lambda c : c .stash .get (_event_loop_fixture_id , None ), # type: ignore
737+ collectors ,
738+ )
739+ possible_event_loop_fixture_ids = {"event_loop" } | set (
740+ collector_event_loop_fixture_ids
741+ )
742+ used_fixture_ids = {event_loop_fixture_id , * metafunc .fixturenames }
743+ used_event_loop_fixture_ids = possible_event_loop_fixture_ids .intersection (
744+ used_fixture_ids
745+ )
746+ if len (used_event_loop_fixture_ids ) > 1 :
735747 raise MultipleEventLoopsRequestedError (
736748 _MULTIPLE_LOOPS_REQUESTED_ERROR .format (
737749 test_name = metafunc .definition .nodeid ,
Original file line number Diff line number Diff line change 11from textwrap import dedent
22
3+ import pytest
34from pytest import Pytester
45
56
7+ @pytest .mark .parametrize ("autouse_fixture_scope" , ("function" , "module" ))
68def test_autouse_fixture_in_different_scope_triggers_multiple_event_loop_error (
79 pytester : Pytester ,
10+ autouse_fixture_scope : str ,
811):
912 pytester .makepyfile (
1013 dedent (
11- """\
14+ f """\
1215 import asyncio
1316 import pytest
1417 import pytest_asyncio
1518
1619 loop: asyncio.AbstractEventLoop
1720
18- @pytest_asyncio.fixture(autouse=True)
21+ @pytest_asyncio.fixture(autouse=True, scope=" { autouse_fixture_scope } " )
1922 async def autouse_fixture():
2023 pass
2124
You can’t perform that action at this time.
0 commit comments