2023-07-21 19:54:32 -04:00
|
|
|
"""Common test fixtures."""
|
|
|
|
|
2023-06-17 14:37:39 -04:00
|
|
|
from typing import AsyncGenerator
|
|
|
|
|
2023-07-21 19:54:32 -04:00
|
|
|
import pytest
|
2023-06-17 14:37:39 -04:00
|
|
|
import pytest_asyncio
|
|
|
|
from veilid.json_api import _JsonVeilidAPI
|
|
|
|
|
2023-07-21 19:54:32 -04:00
|
|
|
import veilid
|
2023-06-17 14:37:39 -04:00
|
|
|
|
2023-07-21 19:54:32 -04:00
|
|
|
from .api import VeilidTestConnectionError, api_connector
|
2023-06-17 14:37:39 -04:00
|
|
|
|
2023-07-21 19:54:32 -04:00
|
|
|
pytest_plugins = ("pytest_asyncio",)
|
2023-06-17 14:37:39 -04:00
|
|
|
|
|
|
|
|
|
|
|
async def simple_update_callback(update: veilid.VeilidUpdate):
|
|
|
|
print(f"VeilidUpdate: {update}")
|
|
|
|
|
|
|
|
|
|
|
|
@pytest_asyncio.fixture
|
|
|
|
async def api_connection() -> AsyncGenerator[_JsonVeilidAPI, None]:
|
2023-07-21 19:54:32 -04:00
|
|
|
try:
|
|
|
|
api = await api_connector(simple_update_callback)
|
|
|
|
except VeilidTestConnectionError:
|
|
|
|
pytest.skip("Unable to connect to veilid-server.")
|
|
|
|
return
|
|
|
|
|
2023-06-17 14:37:39 -04:00
|
|
|
async with api:
|
|
|
|
# purge routes to ensure we start fresh
|
|
|
|
await api.debug("purge routes")
|
|
|
|
|
|
|
|
yield api
|