webtest-aiohttp provides integration of WebTest with aiohttp.web applications.
Supports aiohttp>=2.3.8.
from aiohttp import web
from webtest_aiohttp import TestApp
app = web.Application()
async def hello(request):
return web.json_response({'message': 'Hello world'})
app.router.add_route('GET', '/', handler)
def test_hello(loop):
client = TestApp(app, loop=loop)
res = client.get('/')
assert res.status_code == 200
assert res.json == {'message': 'Hello world'}
pip install webtest-aiohttp
Note: If you are using aiohttp<2.0.0, you will need to install webtest-aiohttp 1.x.
pip install 'webtest-aiohttp<2.0.0'
If you are using pytest and pytest-aiohttp, you can make your tests more concise with a fixture.
from aiohttp import web
from webtest_aiohttp import TestApp as WebTestApp
app = web.Application()
async def hello(request):
return web.json_response({'message': 'Hello world'})
app.router.add_route('GET', '/', handler)
@pytest.fixture()
def testapp(loop):
return WebTestApp(app, loop=loop)
def test_get(testapp):
assert testapp.get('/').json == {'message': 'Hello world'}
- PyPI: https://pypi.python.org/pypi/webtest-aiohttp
- Issues: https://github.com/sloria/webtest-aiohttp/issues
MIT licensed. See the bundled LICENSE file for more details.