27 lines
		
	
	
		
			572 B
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			572 B
		
	
	
	
		
			Python
		
	
	
| 
								 | 
							
								from __future__ import annotations
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import pytest
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								asyncio = pytest.importorskip("asyncio")
							 | 
						||
| 
								 | 
							
								m = pytest.importorskip("pybind11_tests.async_module")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@pytest.fixture()
							 | 
						||
| 
								 | 
							
								def event_loop():
							 | 
						||
| 
								 | 
							
								    loop = asyncio.new_event_loop()
							 | 
						||
| 
								 | 
							
								    yield loop
							 | 
						||
| 
								 | 
							
								    loop.close()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								async def get_await_result(x):
							 | 
						||
| 
								 | 
							
								    return await x
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def test_await(event_loop):
							 | 
						||
| 
								 | 
							
								    assert event_loop.run_until_complete(get_await_result(m.SupportsAsync())) == 5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def test_await_missing(event_loop):
							 | 
						||
| 
								 | 
							
								    with pytest.raises(TypeError):
							 | 
						||
| 
								 | 
							
								        event_loop.run_until_complete(get_await_result(m.DoesNotSupportAsync()))
							 |