1
- from concurrent .futures import ThreadPoolExecutor
2
-
3
1
import pytest
4
2
from aiohttp import web
5
3
6
- from gql import Client , gql
4
+ from gql import Client , RequestsHTTPTransport , gql
7
5
from gql .transport .exceptions import (
8
6
TransportAlreadyConnected ,
9
7
TransportClosed ,
10
8
TransportProtocolError ,
11
9
TransportQueryError ,
12
10
TransportServerError ,
13
11
)
14
- from gql .transport .requests import RequestsHTTPTransport
15
12
16
13
query1_str = """
17
14
query getContinents {
31
28
)
32
29
33
30
34
- async def run_sync_test (event_loop , server , test_function ):
35
- """This function will run the test in a different Thread.
36
-
37
- This allows us to run sync code while aiohttp server can still run.
38
- """
39
- executor = ThreadPoolExecutor (max_workers = 2 )
40
- test_task = event_loop .run_in_executor (executor , test_function )
41
-
42
- await test_task
43
- await server .close ()
44
-
45
-
46
31
@pytest .mark .asyncio
47
- async def test_requests_query (event_loop , aiohttp_server ):
32
+ async def test_requests_query (event_loop , aiohttp_server , run_sync_test ):
48
33
async def handler (request ):
49
34
return web .Response (text = query1_server_answer , content_type = "application/json" )
50
35
@@ -74,7 +59,7 @@ def test_code():
74
59
75
60
76
61
@pytest .mark .asyncio
77
- async def test_requests_error_code_500 (event_loop , aiohttp_server ):
62
+ async def test_requests_error_code_500 (event_loop , aiohttp_server , run_sync_test ):
78
63
async def handler (request ):
79
64
# Will generate http error code 500
80
65
raise Exception ("Server error" )
@@ -102,7 +87,7 @@ def test_code():
102
87
103
88
104
89
@pytest .mark .asyncio
105
- async def test_requests_error_code (event_loop , aiohttp_server ):
90
+ async def test_requests_error_code (event_loop , aiohttp_server , run_sync_test ):
106
91
async def handler (request ):
107
92
return web .Response (
108
93
text = query1_server_error_answer , content_type = "application/json"
@@ -136,7 +121,9 @@ def test_code():
136
121
137
122
@pytest .mark .asyncio
138
123
@pytest .mark .parametrize ("response" , invalid_protocol_responses )
139
- async def test_requests_invalid_protocol (event_loop , aiohttp_server , response ):
124
+ async def test_requests_invalid_protocol (
125
+ event_loop , aiohttp_server , response , run_sync_test
126
+ ):
140
127
async def handler (request ):
141
128
return web .Response (text = response , content_type = "application/json" )
142
129
@@ -160,7 +147,7 @@ def test_code():
160
147
161
148
162
149
@pytest .mark .asyncio
163
- async def test_requests_cannot_connect_twice (event_loop , aiohttp_server ):
150
+ async def test_requests_cannot_connect_twice (event_loop , aiohttp_server , run_sync_test ):
164
151
async def handler (request ):
165
152
return web .Response (text = query1_server_answer , content_type = "application/json" )
166
153
@@ -182,7 +169,9 @@ def test_code():
182
169
183
170
184
171
@pytest .mark .asyncio
185
- async def test_requests_cannot_execute_if_not_connected (event_loop , aiohttp_server ):
172
+ async def test_requests_cannot_execute_if_not_connected (
173
+ event_loop , aiohttp_server , run_sync_test
174
+ ):
186
175
async def handler (request ):
187
176
return web .Response (text = query1_server_answer , content_type = "application/json" )
188
177
0 commit comments