コード例 #1
0
 def test_send_bytes_closed(self):
     req = self.make_request('GET', '/')
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     self.loop.run_until_complete(ws.close())
     with self.assertRaises(RuntimeError):
         ws.send_bytes(b'bytes')
コード例 #2
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_send_json_closed(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()
    with pytest.raises(RuntimeError):
        ws.send_json({'type': 'json'})
コード例 #3
0
 def test_pong_closed(self):
     req = self.make_request("GET", "/")
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     self.loop.run_until_complete(ws.close())
     with self.assertRaises(RuntimeError):
         ws.pong()
コード例 #4
0
ファイル: test_web_websocket.py プロジェクト: kxepal/aiohttp
def test_close_idempotent(make_request, writer):
    req = make_request("GET", "/")
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    assert (yield from ws.close(code=1, message="message1"))
    assert ws.closed
    assert not (yield from ws.close(code=2, message="message2"))
コード例 #5
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_pong_closed(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()
    with pytest.raises(RuntimeError):
        ws.pong()
コード例 #6
0
ファイル: test_web_websocket.py プロジェクト: kxepal/aiohttp
def test_send_str_closed(make_request):
    req = make_request("GET", "/")
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()
    with pytest.raises(RuntimeError):
        ws.send_str("string")
コード例 #7
0
ファイル: test_web_websocket.py プロジェクト: kxepal/aiohttp
def test_send_json_closed(make_request):
    req = make_request("GET", "/")
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()
    with pytest.raises(RuntimeError):
        ws.send_json({"type": "json"})
コード例 #8
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_close_idempotent(make_request, writer):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    assert (yield from ws.close(code=1, message='message1'))
    assert ws.closed
    assert not (yield from ws.close(code=2, message='message2'))
コード例 #9
0
ファイル: web_ws.py プロジェクト: cphyc/andremote
def wsHandler(request):
    resp = WebSocketResponse()
    ok, protocol = resp.can_start(request)
    if not ok:
        with open(WS_FILE, 'rb') as fp:
            return Response(body=fp.read(), content_type='text/html')

    yield from resp.prepare(request)
    
    print('Someone joined.')
    for ws in request.app['sockets']:
        ws.send_str('Someone joined')
    request.app['sockets'].append(resp)

    while True:
        msg = yield from resp.receive()

        if msg.tp == MsgType.text:
            obj = json.loads(msg.data)
            retVal = parseRequest(obj)

            for ws in request.app['sockets']:
                if ws is resp:
                    ws.send_str(json.dumps(retVal))
        else:
            break

    request.app['sockets'].remove(resp)
    print('Someone disconnected.')
    for ws in request.app['sockets']:
        ws.send_str('Someone disconnected.')
    return resp
コード例 #10
0
    def test_concurrent_receive(self):
        req = self.make_request("GET", "/")
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))
        ws._waiting = True

        self.assertRaises(RuntimeError, self.loop.run_until_complete, ws.receive())
コード例 #11
0
ファイル: test_web_websocket.py プロジェクト: Eyepea/aiohttp
def test_prepare_twice_idempotent(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()

    impl1 = yield from ws.prepare(req)
    impl2 = yield from ws.prepare(req)
    assert impl1 is impl2
コード例 #12
0
ファイル: web_ws.py プロジェクト: graingert/aiohttp
def wshandler(request):
    resp = WebSocketResponse()
    ok, protocol = resp.can_start(request)
    if not ok:
        with open(WS_FILE, "rb") as fp:
            return Response(body=fp.read(), content_type="text/html")

    yield from resp.prepare(request)
    print("Someone joined.")
    for ws in request.app["sockets"]:
        ws.send_str("Someone joined")
    request.app["sockets"].append(resp)

    while True:
        msg = yield from resp.receive()

        if msg.tp == MsgType.text:
            for ws in request.app["sockets"]:
                if ws is not resp:
                    ws.send_str(msg.data)
        else:
            break

    request.app["sockets"].remove(resp)
    print("Someone disconnected.")
    for ws in request.app["sockets"]:
        ws.send_str("Someone disconnected.")
    return resp
コード例 #13
0
ファイル: test_web_websocket.py プロジェクト: Eyepea/aiohttp
def test_close_idempotent(make_request, writer):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    ws._reader.feed_data(WS_CLOSED_MESSAGE, 0)
    assert (yield from ws.close(code=1, message='message1'))
    assert ws.closed
    assert not (yield from ws.close(code=2, message='message2'))
コード例 #14
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_concurrent_receive(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    ws._waiting = True

    with pytest.raises(RuntimeError):
        yield from ws.receive()
コード例 #15
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_can_prepare_started(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    with pytest.raises(RuntimeError) as ctx:
        ws.can_prepare(req)

    assert 'Already started' in str(ctx.value)
コード例 #16
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_write_eof_idempotent(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()

    yield from ws.write_eof()
    yield from ws.write_eof()
    yield from ws.write_eof()
コード例 #17
0
 def test_close_idempotent(self):
     req = self.make_request("GET", "/")
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     writer = mock.Mock()
     ws._writer = writer
     self.assertTrue(self.loop.run_until_complete(ws.close(code=1, message="message1")))
     self.assertTrue(ws.closed)
     self.assertFalse(self.loop.run_until_complete(ws.close(code=2, message="message2")))
コード例 #18
0
 def test_multiple_receive_on_close_connection(self):
     req = self.make_request("GET", "/")
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     self.loop.run_until_complete(ws.close())
     self.loop.run_until_complete(ws.receive())
     self.loop.run_until_complete(ws.receive())
     self.loop.run_until_complete(ws.receive())
     self.loop.run_until_complete(ws.receive())
     self.assertRaises(RuntimeError, self.loop.run_until_complete, ws.receive())
コード例 #19
0
    def test_receive_timeouterror(self):
        req = self.make_request("GET", "/")
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        res = asyncio.Future(loop=self.loop)
        res.set_exception(asyncio.TimeoutError())
        ws._reader.read.return_value = res

        self.assertRaises(asyncio.TimeoutError, self.loop.run_until_complete, ws.receive())
コード例 #20
0
ファイル: test_web_websocket.py プロジェクト: Eyepea/aiohttp
def test_pong_closed(make_request, mocker):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    ws._reader.feed_data(WS_CLOSED_MESSAGE, 0)
    yield from ws.close()

    mocker.spy(ws_logger, 'warning')
    ws.pong()
    assert ws_logger.warning.called
コード例 #21
0
ファイル: test_web_websocket.py プロジェクト: Eyepea/aiohttp
def test_write_eof_idempotent(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    ws._reader.feed_data(WS_CLOSED_MESSAGE, 0)
    yield from ws.close()

    yield from ws.write_eof()
    yield from ws.write_eof()
    yield from ws.write_eof()
コード例 #22
0
ファイル: test_web_websocket.py プロジェクト: kxepal/aiohttp
def test_receive_cancelled(make_request, loop, reader):
    req = make_request("GET", "/")
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    res = helpers.create_future(loop)
    res.set_exception(asyncio.CancelledError())
    reader.read = make_mocked_coro(res)

    with pytest.raises(asyncio.CancelledError):
        yield from ws.receive()
コード例 #23
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_receive_timeouterror(make_request, loop, reader):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    res = helpers.create_future(loop)
    res.set_exception(asyncio.TimeoutError())
    reader.read = make_mocked_coro(res)

    with pytest.raises(asyncio.TimeoutError):
        yield from ws.receive()
コード例 #24
0
    def test_receive_cancelled(self):
        req = self.make_request('GET', '/')
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        res = asyncio.Future(loop=self.loop)
        res.set_exception(asyncio.CancelledError())
        ws._reader.read.return_value = res

        self.assertRaises(
            asyncio.CancelledError,
            self.loop.run_until_complete, ws.receive())
コード例 #25
0
        def go():
            req = self.make_request("GET", "/")
            ws = WebSocketResponse()
            yield from ws.prepare(req)

            @asyncio.coroutine
            def receive():
                return websocket.Message(websocket.MSG_BINARY, b"data", b"")

            ws.receive = receive

            with self.assertRaises(TypeError):
                yield from ws.receive_str()
コード例 #26
0
        def go():
            req = self.make_request('GET', '/')
            ws = WebSocketResponse()
            yield from ws.prepare(req)

            @asyncio.coroutine
            def receive():
                return websocket.Message(websocket.MSG_TEXT, 'data', b'')

            ws.receive = receive

            with self.assertRaises(TypeError):
                yield from ws.receive_bytes()
コード例 #27
0
ファイル: test_web_websocket.py プロジェクト: Eyepea/aiohttp
def test_receive_str_nonstring(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    @asyncio.coroutine
    def receive():
        return WSMessage(WSMsgType.BINARY, b'data', b'')

    ws.receive = receive

    with pytest.raises(TypeError):
        yield from ws.receive_str()
コード例 #28
0
    def test_write_eof_idempotent(self):
        req = self.make_request("GET", "/")
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))
        self.loop.run_until_complete(ws.close())

        @asyncio.coroutine
        def go():
            yield from ws.write_eof()
            yield from ws.write_eof()
            yield from ws.write_eof()

        self.loop.run_until_complete(go())
コード例 #29
0
def test_receive_bytes_nonsbytes(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    @asyncio.coroutine
    def receive():
        return WSMessage(WSMsgType.TEXT, 'data', b'')

    ws.receive = receive

    with pytest.raises(TypeError):
        yield from ws.receive_bytes()
コード例 #30
0
        def go():
            req = self.make_request('GET', '/')
            ws = WebSocketResponse()
            yield from ws.prepare(req)

            @asyncio.coroutine
            def receive():
                return websocket.Message(websocket.MSG_TEXT, 'data', b'')

            ws.receive = receive

            with self.assertRaises(TypeError):
                yield from ws.receive_bytes()
コード例 #31
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_receive_bytes_nonsbytes(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    @asyncio.coroutine
    def receive():
        return websocket.Message(websocket.MSG_TEXT, 'data', b'')

    ws.receive = receive

    with pytest.raises(TypeError):
        yield from ws.receive_bytes()
コード例 #32
0
ファイル: test_web_websocket.py プロジェクト: mxxu/aiohttp
def test_multiple_receive_on_close_connection(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    yield from ws.close()

    yield from ws.receive()
    yield from ws.receive()
    yield from ws.receive()
    yield from ws.receive()

    with pytest.raises(RuntimeError):
        yield from ws.receive()
コード例 #33
0
def test_multiple_receive_on_close_connection(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    ws._reader.feed_data(CLOSED_MESSAGE, 0)
    yield from ws.close()

    yield from ws.receive()
    yield from ws.receive()
    yield from ws.receive()
    yield from ws.receive()

    with pytest.raises(RuntimeError):
        yield from ws.receive()
コード例 #34
0
def test_receive_exc_in_reader(make_request, loop, reader):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    exc = ValueError()
    res = helpers.create_future(loop)
    res.set_exception(exc)
    reader.read = make_mocked_coro(res)

    msg = yield from ws.receive()
    assert msg.tp == WSMsgType.error
    assert msg.data is exc
    assert ws.exception() is exc
コード例 #35
0
def function113(function271):
    var2027 = function271('GET', '/')
    var2897 = WebSocketResponse()
    yield from var2897.prepare(var2027)
    var962 = ValueError()
    var2897._writer = mock.Mock()
    var2897._writer.close.side_effect = var962
    yield from var2897.close()
    assert var2897.closed
    assert (var2897.exception() is var962)
    var2897._closed = False
    var2897._writer.close.side_effect = asyncio.CancelledError()
    with pytest.raises(asyncio.CancelledError):
        yield from var2897.close()
コード例 #36
0
        def wrapper(request):
            params = request.GET
            kwargs = {}

            if authenticate:
                kwargs["user"] = handle_auth(params.get("token", None))

            ws = WebSocketResponse()
            try:
                yield from ws.prepare(request)
                yield from func(ws, params, **kwargs)
            except Exception as err:  # pragma: no cover
                logger.error(str(err))

            return ws
コード例 #37
0
def test_receive_client_disconnected(make_request, loop, reader):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    exc = errors.ClientDisconnectedError()
    res = helpers.create_future(loop)
    res.set_exception(exc)
    reader.read = make_mocked_coro(res)

    msg = yield from ws.receive()
    assert ws.closed
    assert msg.tp == WSMsgType.close
    assert msg.data is None
    assert ws.exception() is None
コード例 #38
0
    def test_close_exc2(self):
        req = self.make_request('GET', '/')
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        exc = ValueError()
        self.writer.close.side_effect = exc
        ws._writer = self.writer

        self.loop.run_until_complete(ws.close())
        self.assertTrue(ws.closed)
        self.assertIs(ws.exception(), exc)

        ws._closed = False
        self.writer.close.side_effect = asyncio.CancelledError()
        self.assertRaises(asyncio.CancelledError, self.loop.run_until_complete,
                          ws.close())
コード例 #39
0
    def notifications(request, response):
        notifications = NotificationManager.instance()
        ws = WebSocketResponse()
        yield from ws.prepare(request)

        asyncio.async(process_websocket(ws))

        with notifications.queue() as queue:
            while True:
                try:
                    notification = yield from queue.get_json(5)
                except asyncio.futures.CancelledError:
                    break
                if ws.closed:
                    break
                ws.send_str(notification)
        return ws
コード例 #40
0
def function2536(function271, arg68):
    var3402 = function271('GET', '/')
    var3771 = WebSocketResponse()
    yield from var3771.prepare(var3402)
    var3771._reader = mock.Mock()
    var2011 = ValueError()
    var1794 = helpers.create_future(arg68)
    var1794.set_exception(var2011)
    var3771._reader.read = make_mocked_coro(var1794)
    var3771._payload_writer.drain = mock.Mock()
    var3771._payload_writer.drain.return_value = helpers.create_future(arg68)
    var3771._payload_writer.drain.return_value.set_result(True)
    var2571 = yield from var3771.function1900()
    assert (var2571.type == WSMsgType.ERROR)
    assert (var2571.type is var2571.tp)
    assert (var2571.data is var2011)
    assert (var3771.exception() is var2011)
コード例 #41
0
def test_close_exc2(make_request):

    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    exc = ValueError()
    ws._writer = mock.Mock()
    ws._writer.close.side_effect = exc
    yield from ws.close()
    assert ws.closed
    assert ws.exception() is exc

    ws._closed = False
    ws._writer.close.side_effect = asyncio.CancelledError()
    with pytest.raises(asyncio.CancelledError):
        yield from ws.close()
コード例 #42
0
def test_receive_exc_in_reader(make_request, loop, reader):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)

    exc = ValueError()
    res = helpers.create_future(loop)
    res.set_exception(exc)
    reader.read = make_mocked_coro(res)
    ws._resp_impl.transport.drain.return_value = helpers.create_future(loop)
    ws._resp_impl.transport.drain.return_value.set_result(True)

    msg = yield from ws.receive()
    assert msg.type == WSMsgType.ERROR
    assert msg.type is msg.tp
    assert msg.data is exc
    assert ws.exception() is exc
コード例 #43
0
    def test_receive_exc_in_reader(self):
        req = self.make_request('GET', '/')
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        exc = ValueError()
        res = helpers.create_future(self.loop)
        res.set_exception(exc)
        ws._reader.read.return_value = res

        @asyncio.coroutine
        def go():
            msg = yield from ws.receive()
            self.assertTrue(msg.tp, MsgType.error)
            self.assertIs(msg.data, exc)
            self.assertIs(ws.exception(), exc)

        self.loop.run_until_complete(go())
コード例 #44
0
    def test_receive_client_disconnected(self):
        req = self.make_request('GET', '/')
        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        exc = errors.ClientDisconnectedError()
        res = helpers.create_future(self.loop)
        res.set_exception(exc)
        ws._reader.read.return_value = res

        @asyncio.coroutine
        def go():
            msg = yield from ws.receive()
            self.assertTrue(ws.closed)
            self.assertTrue(msg.tp, MsgType.close)
            self.assertIs(msg.data, None)
            self.assertIs(ws.exception(), None)

        self.loop.run_until_complete(go())
コード例 #45
0
def socket(request):
    resp = WebSocketResponse()
    yield from resp.prepare(request)

    if 'amqp' not in request.app:
        transport, protocol = yield from aioamqp.connect()
        request.app['amqp'] = protocol

        @asyncio.coroutine
        def cleanup(app):
            yield from protocol.close(timeout=1.0)
            transport.close()

        request.app.register_on_finish(cleanup)

    amqp = request.app['amqp']
    channel = yield from amqp.channel()
    yield from channel.exchange_declare(exchange_name='demo-room',
                                        type_name='fanout')
    result = yield from channel.queue_declare('', exclusive=True)
    yield from channel.queue_bind(result['queue'], 'demo-room', routing_key='')

    # Consume messages from the queue
    @asyncio.coroutine
    def message(channel, body, envelope, properties):
        if not resp.closed:
            resp.send_str(body.decode('utf-8'))
        yield from channel.basic_client_ack(envelope.delivery_tag)

    yield from channel.basic_consume(message, queue_name=result['queue'])

    # Broadcast messages to the queue
    while True:
        msg = yield from resp.receive()
        if msg.tp == MsgType.text:
            yield from channel.publish(msg.data,
                                       exchange_name='demo-room',
                                       routing_key='')
        else:
            break
    # Client requested close
    yield from channel.close()
    return resp
コード例 #46
0
def test_close_exc(make_request, reader, loop):
    req = make_request('GET', '/')

    ws = WebSocketResponse()
    yield from ws.prepare(req)

    exc = ValueError()
    reader.read.return_value = helpers.create_future(loop)
    reader.read.return_value.set_exception(exc)

    yield from ws.close()
    assert ws.closed
    assert ws.exception() is exc

    ws._closed = False
    reader.read.return_value = helpers.create_future(loop)
    reader.read.return_value.set_exception(asyncio.CancelledError())
    with pytest.raises(asyncio.CancelledError):
        yield from ws.close()
    assert ws.close_code == 1006
コード例 #47
0
def function479(function271, arg926, arg363):
    var1796 = function271('GET', '/')
    var300 = WebSocketResponse()
    yield from var300.prepare(var1796)
    var300._reader = mock.Mock()
    var4357 = ValueError()
    var300._reader.read.return_value = helpers.create_future(arg926)
    var300._reader.read.return_value.set_exception(var4357)
    var300._payload_writer.drain = mock.Mock()
    var300._payload_writer.drain.return_value = helpers.create_future(arg926)
    var300._payload_writer.drain.return_value.set_result(True)
    yield from var300.close()
    assert var300.closed
    assert (var300.exception() is var4357)
    var300._closed = False
    var300._reader.read.return_value = helpers.create_future(arg926)
    var300._reader.read.return_value.set_exception(asyncio.CancelledError())
    with pytest.raises(asyncio.CancelledError):
        yield from var300.close()
    assert (var300.close_code == 1006)
コード例 #48
0
    def test_close_exc(self):
        req = self.make_request('GET', '/')
        reader = self.reader.set_parser.return_value = mock.Mock()

        ws = WebSocketResponse()
        self.loop.run_until_complete(ws.prepare(req))

        exc = ValueError()
        reader.read.return_value = helpers.create_future(self.loop)
        reader.read.return_value.set_exception(exc)

        self.loop.run_until_complete(ws.close())
        self.assertTrue(ws.closed)
        self.assertIs(ws.exception(), exc)

        ws._closed = False
        reader.read.return_value = helpers.create_future(self.loop)
        reader.read.return_value.set_exception(asyncio.CancelledError())
        self.assertRaises(asyncio.CancelledError, self.loop.run_until_complete,
                          ws.close())
        self.assertEqual(ws.close_code, 1006)
コード例 #49
0
        def wrapper(request):
            params = request.GET
            kwargs = {}

            token = params.get("token", None)
            if authenticate:
                kwargs["user"] = handle_auth(params.get("token", None))

            redis_ = yield from get_async_redis()
            manager = SubscriptionManager(redis_)

            kwargs["manager"] = manager
            ws = WebSocketResponse()
            try:
                yield from ws.prepare(request)
                yield from func(ws, params, **kwargs)
            except Exception as err:  # pragma: no cover
                logger.error(str(err))
            finally:
                yield from manager.stop()

            return ws
コード例 #50
0
def test_close_exc(make_request, loop, mocker):
    req = make_request('GET', '/')

    ws = WebSocketResponse()
    yield from ws.prepare(req)

    ws._reader = mock.Mock()
    exc = ValueError()
    ws._reader.read.return_value = helpers.create_future(loop)
    ws._reader.read.return_value.set_exception(exc)
    ws._payload_writer.drain = mock.Mock()
    ws._payload_writer.drain.return_value = helpers.create_future(loop)
    ws._payload_writer.drain.return_value.set_result(True)

    yield from ws.close()
    assert ws.closed
    assert ws.exception() is exc

    ws._closed = False
    ws._reader.read.return_value = helpers.create_future(loop)
    ws._reader.read.return_value.set_exception(asyncio.CancelledError())
    with pytest.raises(asyncio.CancelledError):
        yield from ws.close()
    assert ws.close_code == 1006
コード例 #51
0
def function1287(function271):
    var1020 = function271('GET', '/', headers=CIMultiDict({}))
    var1629 = WebSocketResponse()
    with pytest.raises(HTTPBadRequest):
        yield from var1629.prepare(var1020)
コード例 #52
0
def test_prepare_invalid_method(make_request):
    req = make_request('POST', '/')
    ws = WebSocketResponse()
    with pytest.raises(HTTPMethodNotAllowed):
        yield from ws.prepare(req)
コード例 #53
0
def test_prepare_without_upgrade(make_request):
    req = make_request('GET', '/', headers=CIMultiDict({}))
    ws = WebSocketResponse()
    with pytest.raises(HTTPBadRequest):
        yield from ws.prepare(req)
コード例 #54
0
def test_send_bytes_nonbytes(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    with pytest.raises(TypeError):
        ws.send_bytes('string')
コード例 #55
0
def test_send_json_nonjson(make_request):
    req = make_request('GET', '/')
    ws = WebSocketResponse()
    yield from ws.prepare(req)
    with pytest.raises(TypeError):
        ws.send_json(set())
コード例 #56
0
 def test_start_without_upgrade(self):
     req = self.make_request('GET', '/', headers=CIMultiDict({}))
     ws = WebSocketResponse()
     with self.assertRaises(HTTPBadRequest):
         self.loop.run_until_complete(ws.prepare(req))
コード例 #57
0
 def test_start_invalid_method(self):
     req = self.make_request('POST', '/')
     ws = WebSocketResponse()
     with self.assertRaises(HTTPMethodNotAllowed):
         self.loop.run_until_complete(ws.prepare(req))
コード例 #58
0
 def test_can_prepare_started(self):
     req = self.make_request('GET', '/')
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     with self.assertRaisesRegex(RuntimeError, 'Already started'):
         ws.can_prepare(req)
コード例 #59
0
 def test_send_bytes_nonbytes(self):
     req = self.make_request('GET', '/')
     ws = WebSocketResponse()
     self.loop.run_until_complete(ws.prepare(req))
     with self.assertRaises(TypeError):
         ws.send_bytes('string')
コード例 #60
0
def function265(function271):
    var2045 = function271('GET', '/')
    var4391 = WebSocketResponse()
    var4138 = yield from var4391.prepare(var2045)
    var1947 = yield from var4391.prepare(var2045)
    assert (var4138 is var1947)