Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add make_mocked_request to test_utils
Browse files Browse the repository at this point in the history
nickolai-dr committed Jun 2, 2016

Verified

This commit was signed with the committer’s verified signature.
vjik Sergei Predvoditelev
1 parent c059e0b commit 1215f5d
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions aiohttp/test_utils.py
Original file line number Diff line number Diff line change
@@ -18,8 +18,15 @@

import asyncio
import aiohttp

from aiohttp import server
from aiohttp import helpers
from multidict import CIMultiDict
from unittest import mock

from aiohttp.protocol import HttpVersion
from aiohttp.protocol import RawRequestMessage
from aiohttp.signals import Signal


def run_briefly(loop):
@@ -304,3 +311,69 @@ def _response(self, response, body=None,
# keep-alive
if response.keep_alive():
self._srv.keep_alive(True)


def _create_app_mock():
app = mock.Mock()
app._debug = False
app.on_response_prepare = Signal(app)
return app


def _create_transport(sslcontext=None):
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
return transport


_not_set = object()


def make_mocked_request(method, path, headers=CIMultiDict(), *,
version=HttpVersion(1, 1), closing=False,
app=None,
reader=_not_set,
writer=_not_set,
transport=_not_set,
payload=_not_set,
sslcontext=None,
secure_proxy_ssl_header=None):

if version < HttpVersion(1, 1):
closing = True
message = RawRequestMessage(method, path, version, headers,
[(k.encode('utf-8'), v.encode('utf-8'))
for k, v in headers.items()],
closing, False)
if app is None:
app = _create_app_mock()

if reader is _not_set:
reader = mock.Mock()

if writer is _not_set:
writer = mock.Mock()

if transport is _not_set:
transport = _create_transport(sslcontext)

if payload is _not_set:
payload = mock.Mock()

from .web import Request
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

0 comments on commit 1215f5d

Please sign in to comment.