Skip to content

Commit 6cf9332

Browse files
committed
Add base async tests
1 parent 8a3e93e commit 6cf9332

File tree

2 files changed

+61
-2
lines changed

2 files changed

+61
-2
lines changed

tests/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
if sys.version_info > (3,):
44
collect_ignore = ["test_django_channels.py"]
55
if sys.version_info < (3, 6):
6-
collect_ignore.append('test_gevent.py')
6+
collect_ignore.append("test_gevent.py")
77
else:
8-
collect_ignore = ["test_aiohttp.py"]
8+
collect_ignore = ["test_aiohttp.py", "test_base_async.py"]

tests/test_base_async.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
from unittest import mock
2+
3+
import json
4+
5+
import pytest
6+
7+
from graphql_ws import base
8+
9+
10+
def test_not_implemented():
11+
server = base.BaseSubscriptionServer(schema=None)
12+
with pytest.raises(NotImplementedError):
13+
server.on_connection_init(connection_context=None, op_id=1, payload={})
14+
with pytest.raises(NotImplementedError):
15+
server.on_open(connection_context=None)
16+
with pytest.raises(NotImplementedError):
17+
server.on_stop(connection_context=None, op_id=1)
18+
19+
20+
def test_terminate():
21+
server = base.BaseSubscriptionServer(schema=None)
22+
23+
context = mock.Mock()
24+
server.on_connection_terminate(connection_context=context, op_id=1)
25+
context.close.assert_called_with(1011)
26+
27+
28+
def test_send_error():
29+
server = base.BaseSubscriptionServer(schema=None)
30+
context = mock.Mock()
31+
server.send_error(connection_context=context, op_id=1, error="test error")
32+
context.send.assert_called_with(
33+
{"id": 1, "type": "error", "payload": {"message": "test error"}}
34+
)
35+
36+
37+
def test_message():
38+
server = base.BaseSubscriptionServer(schema=None)
39+
server.process_message = mock.Mock()
40+
context = mock.Mock()
41+
msg = {"id": 1, "type": base.GQL_CONNECTION_INIT, "payload": ""}
42+
server.on_message(context, msg)
43+
server.process_message.assert_called_with(context, msg)
44+
45+
46+
def test_message_str():
47+
server = base.BaseSubscriptionServer(schema=None)
48+
server.process_message = mock.Mock()
49+
context = mock.Mock()
50+
msg = {"id": 1, "type": base.GQL_CONNECTION_INIT, "payload": ""}
51+
server.on_message(context, json.dumps(msg))
52+
server.process_message.assert_called_with(context, msg)
53+
54+
55+
def test_message_invalid():
56+
server = base.BaseSubscriptionServer(schema=None)
57+
server.send_error = mock.Mock()
58+
server.on_message(connection_context=None, message="'not-json")
59+
assert server.send_error.called

0 commit comments

Comments
 (0)