Skip to content

Commit ee313a6

Browse files
committed
Add tests
1 parent c9e2400 commit ee313a6

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

tests/test_aiohttp.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -948,3 +948,35 @@ async def handler(request):
948948
expected_error = "Syntax Error: Unexpected Name 'BLAHBLAH'"
949949

950950
assert expected_error in captured_err
951+
952+
953+
query1_server_answer_with_extensions = (
954+
f'{{"data":{query1_server_answer_data}, "extensions":{{"key1": "val1"}}}}'
955+
)
956+
957+
958+
@pytest.mark.asyncio
959+
async def test_aiohttp_query_with_extensions(event_loop, aiohttp_server):
960+
from aiohttp import web
961+
from gql.transport.aiohttp import AIOHTTPTransport
962+
963+
async def handler(request):
964+
return web.Response(
965+
text=query1_server_answer_with_extensions, content_type="application/json"
966+
)
967+
968+
app = web.Application()
969+
app.router.add_route("POST", "/", handler)
970+
server = await aiohttp_server(app)
971+
972+
url = server.make_url("/")
973+
974+
sample_transport = AIOHTTPTransport(url=url, timeout=10)
975+
976+
async with Client(transport=sample_transport,) as session:
977+
978+
query = gql(query1_str)
979+
980+
execution_result = await session._execute(query)
981+
982+
assert execution_result.extensions["key1"] == "val1"

tests/test_requests.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,3 +216,47 @@ def test_code():
216216
sample_transport.execute(query)
217217

218218
await run_sync_test(event_loop, server, test_code)
219+
220+
221+
query1_server_answer_with_extensions = (
222+
'{"data":{"continents":['
223+
'{"code":"AF","name":"Africa"},{"code":"AN","name":"Antarctica"},'
224+
'{"code":"AS","name":"Asia"},{"code":"EU","name":"Europe"},'
225+
'{"code":"NA","name":"North America"},{"code":"OC","name":"Oceania"},'
226+
'{"code":"SA","name":"South America"}]},'
227+
'"extensions": {"key1": "val1"}'
228+
"}"
229+
)
230+
231+
232+
@pytest.mark.aiohttp
233+
@pytest.mark.asyncio
234+
async def test_requests_query_with_extensions(
235+
event_loop, aiohttp_server, run_sync_test
236+
):
237+
from aiohttp import web
238+
from gql.transport.requests import RequestsHTTPTransport
239+
240+
async def handler(request):
241+
return web.Response(
242+
text=query1_server_answer_with_extensions, content_type="application/json"
243+
)
244+
245+
app = web.Application()
246+
app.router.add_route("POST", "/", handler)
247+
server = await aiohttp_server(app)
248+
249+
url = server.make_url("/")
250+
251+
def test_code():
252+
sample_transport = RequestsHTTPTransport(url=url)
253+
254+
with Client(transport=sample_transport,) as session:
255+
256+
query = gql(query1_str)
257+
258+
execution_result = session._execute(query)
259+
260+
assert execution_result.extensions["key1"] == "val1"
261+
262+
await run_sync_test(event_loop, server, test_code)

tests/test_websocket_query.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,3 +569,33 @@ async def test_websocket_using_cli(event_loop, server, monkeypatch, capsys):
569569
received_answer = json.loads(captured_out)
570570

571571
assert received_answer == expected_answer
572+
573+
574+
query1_server_answer_with_extensions = (
575+
'{{"type":"data","id":"{query_id}","payload":{{"data":{{"continents":['
576+
'{{"code":"AF","name":"Africa"}},{{"code":"AN","name":"Antarctica"}},'
577+
'{{"code":"AS","name":"Asia"}},{{"code":"EU","name":"Europe"}},'
578+
'{{"code":"NA","name":"North America"}},{{"code":"OC","name":"Oceania"}},'
579+
'{{"code":"SA","name":"South America"}}]}},'
580+
'"extensions": {{"key1": "val1"}}}}}}'
581+
)
582+
583+
server1_answers_with_extensions = [
584+
query1_server_answer_with_extensions,
585+
]
586+
587+
588+
@pytest.mark.asyncio
589+
@pytest.mark.parametrize("server", [server1_answers_with_extensions], indirect=True)
590+
@pytest.mark.parametrize("query_str", [query1_str])
591+
async def test_websocket_simple_query_with_extensions(
592+
event_loop, client_and_server, query_str
593+
):
594+
595+
session, server = client_and_server
596+
597+
query = gql(query_str)
598+
599+
execution_result = await session._execute(query)
600+
601+
assert execution_result.extensions["key1"] == "val1"

0 commit comments

Comments
 (0)