Skip to content

sloria/webtest-aiohttp

Repository files navigation

webtest-aiohttp

Latest version Travis-CI

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'}

Installation

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'

Usage with pytest

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'}

Project Links

License

MIT licensed. See the bundled LICENSE file for more details.

About

Integration of WebTest with aiohttp.web applications

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages