2
2
import json
3
3
import ssl
4
4
import sys
5
- from typing import Dict
5
+ from typing import Dict , Mapping
6
6
7
7
import pytest
8
8
@@ -58,12 +58,12 @@ async def test_websocket_starting_client_in_context_manager(event_loop, server):
58
58
url = f"ws://{ server .hostname } :{ server .port } /graphql"
59
59
print (f"url = { url } " )
60
60
61
- sample_transport = WebsocketsTransport (url = url )
61
+ transport = WebsocketsTransport (url = url )
62
62
63
- async with Client (transport = sample_transport ) as session :
63
+ async with Client (transport = transport ) as session :
64
64
65
65
assert isinstance (
66
- sample_transport .websocket , websockets .client .WebSocketClientProtocol
66
+ transport .websocket , websockets .client .WebSocketClientProtocol
67
67
)
68
68
69
69
query1 = gql (query1_str )
@@ -80,8 +80,13 @@ async def test_websocket_starting_client_in_context_manager(event_loop, server):
80
80
81
81
assert africa ["code" ] == "AF"
82
82
83
+ # Checking response headers are saved in the transport
84
+ assert hasattr (transport , "response_headers" )
85
+ assert isinstance (transport .response_headers , Mapping )
86
+ assert transport .response_headers ["dummy" ] == "test1234"
87
+
83
88
# Check client is disconnect here
84
- assert sample_transport .websocket is None
89
+ assert transport .websocket is None
85
90
86
91
87
92
@pytest .mark .asyncio
@@ -98,12 +103,12 @@ async def test_websocket_using_ssl_connection(event_loop, ws_ssl_server):
98
103
ssl_context = ssl .SSLContext (ssl .PROTOCOL_TLS_CLIENT )
99
104
ssl_context .load_verify_locations (ws_ssl_server .testcert )
100
105
101
- sample_transport = WebsocketsTransport (url = url , ssl = ssl_context )
106
+ transport = WebsocketsTransport (url = url , ssl = ssl_context )
102
107
103
- async with Client (transport = sample_transport ) as session :
108
+ async with Client (transport = transport ) as session :
104
109
105
110
assert isinstance (
106
- sample_transport .websocket , websockets .client .WebSocketClientProtocol
111
+ transport .websocket , websockets .client .WebSocketClientProtocol
107
112
)
108
113
109
114
query1 = gql (query1_str )
@@ -121,7 +126,7 @@ async def test_websocket_using_ssl_connection(event_loop, ws_ssl_server):
121
126
assert africa ["code" ] == "AF"
122
127
123
128
# Check client is disconnect here
124
- assert sample_transport .websocket is None
129
+ assert transport .websocket is None
125
130
126
131
127
132
@pytest .mark .asyncio
@@ -301,19 +306,19 @@ async def test_websocket_multiple_connections_in_series(event_loop, server):
301
306
url = f"ws://{ server .hostname } :{ server .port } /graphql"
302
307
print (f"url = { url } " )
303
308
304
- sample_transport = WebsocketsTransport (url = url )
309
+ transport = WebsocketsTransport (url = url )
305
310
306
- async with Client (transport = sample_transport ) as session :
311
+ async with Client (transport = transport ) as session :
307
312
await assert_client_is_working (session )
308
313
309
314
# Check client is disconnect here
310
- assert sample_transport .websocket is None
315
+ assert transport .websocket is None
311
316
312
- async with Client (transport = sample_transport ) as session :
317
+ async with Client (transport = transport ) as session :
313
318
await assert_client_is_working (session )
314
319
315
320
# Check client is disconnect here
316
- assert sample_transport .websocket is None
321
+ assert transport .websocket is None
317
322
318
323
319
324
@pytest .mark .asyncio
@@ -325,8 +330,8 @@ async def test_websocket_multiple_connections_in_parallel(event_loop, server):
325
330
print (f"url = { url } " )
326
331
327
332
async def task_coro ():
328
- sample_transport = WebsocketsTransport (url = url )
329
- async with Client (transport = sample_transport ) as session :
333
+ transport = WebsocketsTransport (url = url )
334
+ async with Client (transport = transport ) as session :
330
335
await assert_client_is_working (session )
331
336
332
337
task1 = asyncio .ensure_future (task_coro ())
@@ -345,12 +350,12 @@ async def test_websocket_trying_to_connect_to_already_connected_transport(
345
350
url = f"ws://{ server .hostname } :{ server .port } /graphql"
346
351
print (f"url = { url } " )
347
352
348
- sample_transport = WebsocketsTransport (url = url )
349
- async with Client (transport = sample_transport ) as session :
353
+ transport = WebsocketsTransport (url = url )
354
+ async with Client (transport = transport ) as session :
350
355
await assert_client_is_working (session )
351
356
352
357
with pytest .raises (TransportAlreadyConnected ):
353
- async with Client (transport = sample_transport ):
358
+ async with Client (transport = transport ):
354
359
pass
355
360
356
361
@@ -395,9 +400,9 @@ async def test_websocket_connect_success_with_authentication_in_connection_init(
395
400
396
401
init_payload = {"Authorization" : 12345 }
397
402
398
- sample_transport = WebsocketsTransport (url = url , init_payload = init_payload )
403
+ transport = WebsocketsTransport (url = url , init_payload = init_payload )
399
404
400
- async with Client (transport = sample_transport ) as session :
405
+ async with Client (transport = transport ) as session :
401
406
402
407
query1 = gql (query_str )
403
408
@@ -428,10 +433,10 @@ async def test_websocket_connect_failed_with_authentication_in_connection_init(
428
433
url = f"ws://{ server .hostname } :{ server .port } /graphql"
429
434
print (f"url = { url } " )
430
435
431
- sample_transport = WebsocketsTransport (url = url , init_payload = init_payload )
436
+ transport = WebsocketsTransport (url = url , init_payload = init_payload )
432
437
433
438
with pytest .raises (TransportServerError ):
434
- async with Client (transport = sample_transport ) as session :
439
+ async with Client (transport = transport ) as session :
435
440
query1 = gql (query_str )
436
441
437
442
await session .execute (query1 )
@@ -444,9 +449,9 @@ def test_websocket_execute_sync(server):
444
449
url = f"ws://{ server .hostname } :{ server .port } /graphql"
445
450
print (f"url = { url } " )
446
451
447
- sample_transport = WebsocketsTransport (url = url )
452
+ transport = WebsocketsTransport (url = url )
448
453
449
- client = Client (transport = sample_transport )
454
+ client = Client (transport = transport )
450
455
451
456
query1 = gql (query1_str )
452
457
@@ -476,7 +481,7 @@ def test_websocket_execute_sync(server):
476
481
assert africa ["code" ] == "AF"
477
482
478
483
# Check client is disconnect here
479
- assert sample_transport .websocket is None
484
+ assert transport .websocket is None
480
485
481
486
482
487
@pytest .mark .asyncio
@@ -487,11 +492,11 @@ async def test_websocket_add_extra_parameters_to_connect(event_loop, server):
487
492
url = f"ws://{ server .hostname } :{ server .port } /graphql"
488
493
489
494
# Increase max payload size to avoid websockets.exceptions.PayloadTooBig exceptions
490
- sample_transport = WebsocketsTransport (url = url , connect_args = {"max_size" : 2 ** 21 })
495
+ transport = WebsocketsTransport (url = url , connect_args = {"max_size" : 2 ** 21 })
491
496
492
497
query = gql (query1_str )
493
498
494
- async with Client (transport = sample_transport ) as session :
499
+ async with Client (transport = transport ) as session :
495
500
await session .execute (query )
496
501
497
502
0 commit comments