Skip to content

Commit 8a3e93e

Browse files
committed
Add some base tests
1 parent e6d58cf commit 8a3e93e

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

setup.cfg

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,8 @@ ignore = W503
9090
[coverage:run]
9191
omit =
9292
.tox/*
93+
94+
[coverage:report]
95+
exclude_lines =
96+
pragma: no cover
97+
@abstract

tests/test_base.py

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

tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,6 @@ skip_install = true
3131
deps = coverage
3232
commands =
3333
coverage html
34+
coverage xml
3435
coverage report --include="tests/*" --fail-under=100 -m
3536
coverage report --omit="tests/*" # --fail-under=90 -m

0 commit comments

Comments
 (0)