async def test__use_provided_session_websocket(ManagedServerLoop) -> None: application = Application() with ManagedServerLoop(application) as server: sessions = server.get_sessions('/') assert 0 == len(sessions) expected = 'foo' token = generate_jwt_token(expected) await websocket_open(server.io_loop, ws_url(server), subprotocols=["bokeh", token]) sessions = server.get_sessions('/') assert 1 == len(sessions) assert expected == sessions[0].id
async def test__reject_no_token_websocket(ManagedServerLoop: MSL) -> None: application = Application() with ManagedServerLoop(application) as server: sessions = server.get_sessions('/') assert 0 == len(sessions) await http_get(server.io_loop, url(server)) sessions = server.get_sessions('/') assert 1 == len(sessions) ws = await websocket_open(server.io_loop, ws_url(server), subprotocols=["foo"]) assert await ws.read_queue.get() is None
async def test__reject_expired_session_websocket(ManagedServerLoop) -> None: application = Application() with ManagedServerLoop(application, session_token_expiration=1) as server: sessions = server.get_sessions('/') assert 0 == len(sessions) response = await http_get(server.io_loop, url(server)) html = response.body token = extract_token_from_json(html) time.sleep(1.1) ws = await websocket_open(server.io_loop, ws_url(server), subprotocols=["bokeh", token]) assert await ws.read_queue.get() is None
async def test__accept_session_websocket(ManagedServerLoop) -> None: application = Application() with ManagedServerLoop(application, session_token_expiration=1) as server: sessions = server.get_sessions('/') assert 0 == len(sessions) response = await http_get(server.io_loop, url(server)) html = response.body token = extract_token_from_json(html) ws = await websocket_open(server.io_loop, ws_url(server), subprotocols=["bokeh", token]) msg = await ws.read_queue.get() assert isinstance(msg, str) assert 'ACK' in msg
async def test__reject_unsigned_session_websocket( ManagedServerLoop: MSL) -> None: application = Application() with ManagedServerLoop(application, sign_sessions=True, secret_key='bar') as server: sessions = server.get_sessions('/') assert 0 == len(sessions) expected = 'foo' token = generate_jwt_token(expected) await websocket_open(server.io_loop, ws_url(server), subprotocols=["bokeh", token]) sessions = server.get_sessions('/') assert 0 == len(sessions)
async def test__reject_wrong_subprotocol_websocket(ManagedServerLoop) -> None: application = Application() with ManagedServerLoop(application) as server: sessions = server.get_sessions('/') assert 0 == len(sessions) response = await http_get(server.io_loop, url(server)) html = response.body token = extract_token_from_json(html) sessions = server.get_sessions('/') assert 1 == len(sessions) ws = await websocket_open(server.io_loop, ws_url(server), subprotocols=["foo", token]) assert await ws.read_queue.get() is None