Coverage for tests/helpers.py: 100%
21 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 21:13 +0300
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 21:13 +0300
1"""Shared test helpers and fixtures."""
3from __future__ import annotations
5from pathlib import Path
7from snektest import AsyncSessionFixture
9from snekql.testing.mariadb import (
10 TemporaryMariaDBServer,
11 temporary_mariadb_server,
12)
15class NullStructuredLogger:
16 """Structured logger fake that intentionally ignores all events."""
18 def debug(self, event: str, **fields: object) -> None:
19 _ = event
20 _ = fields
22 def info(self, event: str, **fields: object) -> None:
23 _ = event
24 _ = fields
26 def warning(self, event: str, **fields: object) -> None:
27 _ = event
28 _ = fields
30 def error(self, event: str, **fields: object) -> None:
31 _ = event
32 _ = fields
35NULL_LOGGER = NullStructuredLogger()
38async def provide_mariadb_server() -> AsyncSessionFixture[TemporaryMariaDBServer]:
39 """Provide a local MariaDB server for medium integration tests."""
41 async with temporary_mariadb_server(
42 data_directory=Path(".snektest/mariadb-data"),
43 reset_database=True,
44 transports={"tcp"},
45 ) as server:
46 yield server