File tree 2 files changed +18
-3
lines changed
2 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -715,7 +715,19 @@ def pytest_generate_tests(metafunc: Metafunc) -> None:
715
715
event_loop_fixture_id = event_loop_node .stash .get (_event_loop_fixture_id , None )
716
716
717
717
if event_loop_fixture_id :
718
- if "event_loop" in metafunc .fixturenames :
718
+ collectors = _iter_collectors (metafunc .definition )
719
+ collector_event_loop_fixture_ids = map (
720
+ lambda c : c .stash .get (_event_loop_fixture_id , None ), # type: ignore
721
+ collectors ,
722
+ )
723
+ possible_event_loop_fixture_ids = {"event_loop" } | set (
724
+ collector_event_loop_fixture_ids
725
+ )
726
+ used_fixture_ids = {event_loop_fixture_id , * metafunc .fixturenames }
727
+ used_event_loop_fixture_ids = possible_event_loop_fixture_ids .intersection (
728
+ used_fixture_ids
729
+ )
730
+ if len (used_event_loop_fixture_ids ) > 1 :
719
731
raise MultipleEventLoopsRequestedError (
720
732
_MULTIPLE_LOOPS_REQUESTED_ERROR .format (
721
733
test_name = metafunc .definition .nodeid ,
Original file line number Diff line number Diff line change 1
1
from textwrap import dedent
2
2
3
+ import pytest
3
4
from pytest import Pytester
4
5
5
6
7
+ @pytest .mark .parametrize ("autouse_fixture_scope" , ("function" , "module" ))
6
8
def test_autouse_fixture_in_different_scope_triggers_multiple_event_loop_error (
7
9
pytester : Pytester ,
10
+ autouse_fixture_scope : str ,
8
11
):
9
12
pytester .makepyfile (
10
13
dedent (
11
- """\
14
+ f """\
12
15
import asyncio
13
16
import pytest
14
17
import pytest_asyncio
15
18
16
19
loop: asyncio.AbstractEventLoop
17
20
18
- @pytest_asyncio.fixture(autouse=True)
21
+ @pytest_asyncio.fixture(autouse=True, scope=" { autouse_fixture_scope } " )
19
22
async def autouse_fixture():
20
23
pass
21
24
You can’t perform that action at this time.
0 commit comments