示例#1
0
    def make_request(self, method, path, headers=None, protocols=False):
        self.app = mock.Mock()
        self.app._debug = False
        if headers is None:
            headers = CIMultiDict({
                'HOST': 'server.example.com',
                'UPGRADE': 'websocket',
                'CONNECTION': 'Upgrade',
                'SEC-WEBSOCKET-KEY': 'dGhlIHNhbXBsZSBub25jZQ==',
                'ORIGIN': 'http://example.com',
                'SEC-WEBSOCKET-VERSION': '13'
            })
            if protocols:
                headers['SEC-WEBSOCKET-PROTOCOL'] = 'chat, superchat'

        message = RawRequestMessage(method, path, HttpVersion11, headers,
                                    [(k.encode('utf-8'), v.encode('utf-8'))
                                     for k, v in headers.items()], False,
                                    False)
        self.payload = mock.Mock()
        self.transport = mock.Mock()
        self.reader = mock.Mock()
        self.writer = mock.Mock()
        self.app.loop = self.loop
        self.app.on_response_prepare = signals.Signal(self.app)
        req = Request(self.app, message, self.payload, self.transport,
                      self.reader, self.writer)
        return req
示例#2
0
 def make_request(self, method='GET', path='/', headers=CIMultiDict()):
     self.app = mock.Mock()
     message = RawRequestMessage(method, path, HttpVersion11, headers,
                                 False, False)
     req = Request(self.app, message, self.payload,
                   self.transport, self.reader, self.writer)
     return req
示例#3
0
    def make_request(self,
                     method,
                     path,
                     headers=CIMultiDict(),
                     *,
                     version=HttpVersion(1, 1),
                     closing=False,
                     sslcontext=None,
                     secure_proxy_ssl_header=None):
        if version < HttpVersion(1, 1):
            closing = True
        self.app = mock.Mock()
        message = RawRequestMessage(method, path, version, headers, closing,
                                    False)
        self.payload = mock.Mock()
        self.transport = mock.Mock()

        def get_extra_info(key):
            if key == 'sslcontext':
                return sslcontext
            else:
                return None

        self.transport.get_extra_info.side_effect = get_extra_info
        self.writer = mock.Mock()
        self.reader = mock.Mock()
        req = Request(self.app,
                      message,
                      self.payload,
                      self.transport,
                      self.reader,
                      self.writer,
                      secure_proxy_ssl_header=secure_proxy_ssl_header)
        return req
示例#4
0
    def maker(method, path, headers=CIMultiDict(), *,
              version=HttpVersion(1, 1), closing=False,
              sslcontext=None,
              secure_proxy_ssl_header=None):
        if version < HttpVersion(1, 1):
            closing = True
        app = mock.Mock()
        app._debug = False
        app.on_response_prepare = Signal(app)
        message = RawRequestMessage(method, path, version, headers,
                                    [(k.encode('utf-8'), v.encode('utf-8'))
                                     for k, v in headers.items()],
                                    closing, False)
        payload = mock.Mock()
        transport = mock.Mock()

        def get_extra_info(key):
            if key == 'sslcontext':
                return sslcontext
            else:
                return None

        transport.get_extra_info.side_effect = get_extra_info
        writer = mock.Mock()
        reader = mock.Mock()
        req = Request(app, message, payload,
                      transport, reader, writer,
                      secure_proxy_ssl_header=secure_proxy_ssl_header)

        assert req.app is app
        assert req.content is payload
        assert req.transport is transport

        return req
示例#5
0
def request_from_message(message, app):
    payload = mock.Mock()
    transport = mock.Mock()
    reader = mock.Mock()
    writer = mock.Mock()
    req = Request(app, message, payload, transport, reader, writer)
    return req
示例#6
0
    def make_request(self,
                     method,
                     path,
                     query_params={},
                     headers=None,
                     match_info=None):
        if query_params:
            path = '%s?%s' % (path, urllib.parse.urlencode(query_params))

        # Ported from:
        # https://github.com/KeepSafe/aiohttp/blob/fa06acc2392c516491bdb25301ad3ef2b700ff5f/tests/test_web_websocket.py#L21-L45  # noqa
        self.app = mock.Mock()
        self.app._debug = False
        if headers is None:
            headers = CIMultiDict({
                'HOST': 'server.example.com',
                'UPGRADE': 'websocket',
                'CONNECTION': 'Upgrade',
                'SEC-WEBSOCKET-KEY': 'dGhlIHNhbXBsZSBub25jZQ==',
                'ORIGIN': 'http://example.com',
                'SEC-WEBSOCKET-PROTOCOL': 'chat, superchat',
                'SEC-WEBSOCKET-VERSION': '13'
            })

        message = make_raw_request_message(method, path, headers)
        self.payload = mock.Mock()
        self.transport = mock.Mock()
        self.reader = mock.Mock()
        self.writer = mock.Mock()
        self.app.loop = self.loop
        self.app.on_response_prepare = Signal(self.app)
        req = Request(self.app, message, self.payload, self.transport,
                      self.reader, self.writer)
        req._match_info = match_info
        return req
示例#7
0
    def handle_request(self, message, payload):
        app = self._app
        request = Request(app, message, payload, self.transport, self.reader,
                          self.writer)
        try:
            match_info = yield from self._router.resolve(request)

            assert isinstance(match_info, AbstractMatchInfo), match_info

            request._match_info = match_info
            handler = match_info.handler

            for factory in reversed(self._middlewares):
                handler = yield from factory(app, handler)
            resp = yield from handler(request)

            if not isinstance(resp, StreamResponse):
                raise RuntimeError(
                    ("Handler {!r} should return response instance, "
                     "got {!r} [middlewares {!r}]").format(
                         match_info.handler, type(resp), self._middlewares))
        except HTTPException as exc:
            resp = exc

        return resp
示例#8
0
 def make_request(self, method, path, headers=MultiDict()):
     self.app = mock.Mock()
     message = RawRequestMessage(method, path, HttpVersion11, headers,
                                 False, False)
     self.payload = mock.Mock()
     self.writer = mock.Mock()
     req = Request(self.app, message, self.payload, self.writer)
     return req
示例#9
0
 def request_from_message(self, message):
     self.app = mock.Mock()
     self.payload = mock.Mock()
     self.transport = mock.Mock()
     self.reader = mock.Mock()
     self.writer = mock.Mock()
     req = Request(self.app, message, self.payload, self.transport,
                   self.reader, self.writer)
     return req
示例#10
0
def request_from_message(message, **kwargs):
    app = kwargs.get('app') or mock.Mock()
    app._debug = False
    app.on_response_prepare = signals.Signal(app)
    payload = mock.Mock()
    transport = mock.Mock()
    reader = mock.Mock()
    writer = kwargs.get('writer') or mock.Mock()
    req = Request(app, message, payload, transport, reader, writer)
    return req
示例#11
0
 def make_request(self, method, path):
     self.app = mock.Mock()
     message = RawRequestMessage(method, path, HttpVersion(1, 1),
                                 MultiDict(), False, False)
     self.payload = mock.Mock()
     self.transport = mock.Mock()
     self.writer = mock.Mock()
     req = Request(self.app, message, self.payload,
                   self.transport, self.writer, 15)
     return req
 def make_request(self, method, path, headers=CIMultiDict(), *,
                  version=HttpVersion(1, 1), closing=False):
     self.app = mock.Mock()
     message = RawRequestMessage(method, path, version, headers, closing,
                                 False)
     self.payload = mock.Mock()
     self.transport = mock.Mock()
     self.writer = mock.Mock()
     self.reader = mock.Mock()
     req = Request(self.app, message, self.payload,
                   self.transport, self.reader, self.writer)
     return req
示例#13
0
 def make_request(self, method, path, headers=None):
     self.app = mock.Mock()
     if headers is None:
         headers = CIMultiDict(
             {'HOST': 'server.example.com',
              'UPGRADE': 'websocket',
              'CONNECTION': 'Upgrade',
              'SEC-WEBSOCKET-KEY': 'dGhlIHNhbXBsZSBub25jZQ==',
              'ORIGIN': 'http://example.com',
              'SEC-WEBSOCKET-PROTOCOL': 'chat, superchat',
              'SEC-WEBSOCKET-VERSION': '13'})
     message = RawRequestMessage(method, path, HttpVersion11, headers,
                                 False, False)
     self.payload = mock.Mock()
     self.transport = mock.Mock()
     self.reader = mock.Mock()
     self.writer = mock.Mock()
     self.app.loop = self.loop
     req = Request(self.app, message, self.payload,
                   self.transport, self.reader, self.writer)
     return req
示例#14
0
def request(buf):
    method = 'GET'
    path = '/'
    headers = CIMultiDict()
    transport = mock.Mock()
    payload = mock.Mock()
    reader = mock.Mock()
    writer = mock.Mock()
    writer.drain.return_value = ()

    def append(data):
        buf.extend(data)
    writer.write.side_effect = append
    app = mock.Mock()
    app._debug = False
    app.on_response_prepare = signals.Signal(app)
    message = RawRequestMessage(method, path, HttpVersion11, headers, [],
                                False, False)
    req = Request(app, message, payload,
                  transport, reader, writer)
    return req
 def make_request(self,
                  method,
                  path,
                  headers=CIMultiDict(),
                  *,
                  version=HttpVersion(1, 1),
                  closing=False):
     self.app = mock.Mock()
     if tuple(int(i) for i in aiohttp.__version__.split('.')) < (0, 21):
         message = RawRequestMessage(method, path, version, headers,
                                     closing, False)
     else:
         message = RawRequestMessage(method, path, version, headers,
                                     [(k.encode('utf-8'), v.encode('utf-8'))
                                      for k, v in headers.items()], closing,
                                     False)
     self.payload = mock.Mock()
     self.transport = mock.Mock()
     self.writer = mock.Mock()
     self.reader = mock.Mock()
     req = Request(self.app, message, self.payload, self.transport,
                   self.reader, self.writer)
     return req