Skip to content

aio-libs/pytest-aiohttp

Folders and files

NameName
Last commit message
Last commit date
Oct 29, 2024
Feb 17, 2025
Oct 29, 2024
Jan 20, 2022
Oct 29, 2024
Feb 24, 2025
Jan 23, 2025
Jan 3, 2018
Sep 8, 2016
Mar 25, 2022
Jan 20, 2022
Oct 29, 2024
Jan 20, 2022

pytest-aiohttp

pytest plugin for aiohttp support

The library provides useful fixtures for creation test aiohttp server and client.

Installation

$ pip install pytest-aiohttp

Add asyncio_mode = auto line to pytest configuration (see pytest-asyncio modes for details). The plugin works with strict mode also.

Usage

Write tests in pytest-asyncio style using provided fixtures for aiohttp test server and client creation. The plugin provides resources cleanup out-of-the-box.

The simple usage example:

from aiohttp import web


async def hello(request):
    return web.Response(body=b"Hello, world")


def create_app():
    app = web.Application()
    app.router.add_route("GET", "/", hello)
    return app


async def test_hello(aiohttp_client):
    client = await aiohttp_client(create_app())
    resp = await client.get("/")
    assert resp.status == 200
    text = await resp.text()
    assert "Hello, world" in text

See aiohttp documentation <https://docs.aiohttp.org/en/stable/testing.html#pytest> for more details about fixtures usage.