test_websocket: add test for etf

- embed.sanitizer: remove unused import
This commit is contained in:
Luna 2019-04-25 22:44:34 -03:00
parent 9f50721243
commit 0631f007c1
2 changed files with 25 additions and 3 deletions

View File

@ -22,7 +22,6 @@ litecord.embed.sanitizer
sanitize embeds by giving common values sanitize embeds by giving common values
such as type: rich such as type: rich
""" """
import urllib.parse
from typing import Dict, Any, Optional, Union, List, Tuple from typing import Dict, Any, Optional, Union, List, Tuple
from logbook import Logger from logbook import Logger

View File

@ -17,12 +17,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import json
import pytest import pytest
import websockets import websockets
import json
from tests.common import login from tests.common import login
from litecord.gateway.opcodes import OP from litecord.gateway.opcodes import OP
from litecord.gateway.websocket import decode_etf
async def _json(conn): async def _json(conn):
@ -30,6 +32,11 @@ async def _json(conn):
return json.loads(frame) return json.loads(frame)
async def _etf(conn):
frame = await conn.recv()
return decode_etf(frame)
async def _json_send(conn, data): async def _json_send(conn, data):
frame = json.dumps(data) frame = json.dumps(data)
await conn.send(frame) await conn.send(frame)
@ -53,9 +60,13 @@ async def get_gw(test_cli) -> str:
return gw_json['url'] return gw_json['url']
async def gw_start(test_cli): async def gw_start(test_cli, *, etf=False):
"""Start a websocket connection""" """Start a websocket connection"""
gw_url = await get_gw(test_cli) gw_url = await get_gw(test_cli)
if etf:
gw_url = f'{gw_url}?encoding=etf'
return await websockets.connect(gw_url) return await websockets.connect(gw_url)
@ -164,3 +175,15 @@ async def test_heartbeat(test_cli):
assert recv['op'] == OP.HEARTBEAT_ACK assert recv['op'] == OP.HEARTBEAT_ACK
await _close(conn) await _close(conn)
@pytest.mark.asyncio
async def test_etf(test_cli):
"""Test if the websocket can send a HELLO message over ETF."""
conn = await gw_start(test_cli, etf=True)
try:
hello = await _etf(conn)
assert hello['op'] == OP.HELLO
finally:
await _close(conn)