File tree Expand file tree Collapse file tree 3 files changed +66
-1
lines changed 
docs/source/how-to-guides Expand file tree Collapse file tree 3 files changed +66
-1
lines changed Original file line number Diff line number Diff line change @@ -6,3 +6,5 @@ The easiest way to mark all tests is via a ``pytest_collection_modifyitems`` hoo
66
77.. include :: session_scoped_loop_example.py 
88    :code:  python
9+ 
10+ Note that this will also override *all * manually applied marks in *strict * mode.
Original file line number Diff line number Diff line change @@ -7,4 +7,4 @@ def pytest_collection_modifyitems(items):
77    pytest_asyncio_tests  =  (item  for  item  in  items  if  is_async_test (item ))
88    session_scope_marker  =  pytest .mark .asyncio (scope = "session" )
99    for  async_test  in  pytest_asyncio_tests :
10-         async_test .add_marker (session_scope_marker )
10+         async_test .add_marker (session_scope_marker ,  append = False )
Original file line number Diff line number Diff line change 1+ from  pathlib  import  Path 
2+ from  textwrap  import  dedent 
3+ 
4+ from  pytest  import  Pytester 
5+ 
6+ 
7+ def  test_session_scoped_loop_configuration_works_in_auto_mode (
8+     pytester : Pytester ,
9+ ):
10+     session_wide_mark_conftest  =  (
11+         Path (__file__ ).parent  /  "session_scoped_loop_example.py" 
12+     )
13+     pytester .makeconftest (session_wide_mark_conftest .read_text ())
14+     pytester .makepyfile (
15+         dedent (
16+             """\  
17+              import asyncio
18+ 
19+             session_loop = None 
20+ 
21+             async def test_store_loop(request): 
22+                 global session_loop 
23+                 session_loop = asyncio.get_running_loop() 
24+ 
25+             async def test_compare_loop(request): 
26+                 global session_loop 
27+                 assert asyncio.get_running_loop() is session_loop 
28+             """ 
29+         )
30+     )
31+     result  =  pytester .runpytest_subprocess ("--asyncio-mode=auto" )
32+     result .assert_outcomes (passed = 2 )
33+ 
34+ 
35+ def  test_session_scoped_loop_configuration_works_in_strict_mode (
36+     pytester : Pytester ,
37+ ):
38+     session_wide_mark_conftest  =  (
39+         Path (__file__ ).parent  /  "session_scoped_loop_example.py" 
40+     )
41+     pytester .makeconftest (session_wide_mark_conftest .read_text ())
42+     pytester .makepyfile (
43+         dedent (
44+             """\  
45+              import asyncio
46+             import pytest 
47+ 
48+             session_loop = None 
49+ 
50+             @pytest.mark.asyncio 
51+             async def test_store_loop(request): 
52+                 global session_loop 
53+                 session_loop = asyncio.get_running_loop() 
54+ 
55+             @pytest.mark.asyncio 
56+             async def test_compare_loop(request): 
57+                 global session_loop 
58+                 assert asyncio.get_running_loop() is session_loop 
59+             """ 
60+         )
61+     )
62+     result  =  pytester .runpytest_subprocess ("--asyncio-mode=strict" )
63+     result .assert_outcomes (passed = 2 )
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments