import httpx import pytest import requests_mock from asgi_lifespan import LifespanManager from httpx import AsyncClient, ASGITransport from jb.main import app @pytest.fixture(scope="session") def anyio_backend(): return "asyncio" @pytest.fixture(scope="session") async def httpxclient(): # limiter.enabled = True # limiter.reset() app.testing = True async with LifespanManager(app): # await FastAPICache.clear() transport = ASGITransport(app=app) async with AsyncClient( transport=transport, base_url="http://127.0.0.1:8001/" ) as client: yield client await client.aclose() @pytest.fixture() def no_limit(): """Fixture to execute asserts before and after a test is run""" # limiter.enabled = False yield # this is where the testing happens # limiter.enabled = True @pytest.fixture() def httpxclient_ip(httpxclient): """Fixture to execute asserts before and after a test is run""" httpxclient._transport = httpx.ASGITransport(app=app, client=("1.2.3.4", 8001)) yield httpxclient # this is where the testing happens httpxclient._transport = httpx.ASGITransport(app=app) @pytest.fixture def mock_requests(): with requests_mock.Mocker() as m: yield m