"""Pytest helpers for backend async tests."""

from __future__ import annotations

import asyncio
import inspect


def pytest_configure(config):
    config.addinivalue_line("markers", "asyncio: run async tests with asyncio.run")


def pytest_pyfunc_call(pyfuncitem):
    """Run async test functions without requiring an external pytest plugin."""
    if not inspect.iscoroutinefunction(pyfuncitem.obj):
        return None

    kwargs = {
        name: pyfuncitem.funcargs[name] for name in pyfuncitem._fixtureinfo.argnames
    }
    asyncio.run(pyfuncitem.obj(**kwargs))
    return True
