Coverage for tests/helpers.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-07 21:13 +0300

1"""Shared test helpers and fixtures.""" 

2 

3from __future__ import annotations 

4 

5from pathlib import Path 

6 

7from snektest import AsyncSessionFixture 

8 

9from snekql.testing.mariadb import ( 

10 TemporaryMariaDBServer, 

11 temporary_mariadb_server, 

12) 

13 

14 

15class NullStructuredLogger: 

16 """Structured logger fake that intentionally ignores all events.""" 

17 

18 def debug(self, event: str, **fields: object) -> None: 

19 _ = event 

20 _ = fields 

21 

22 def info(self, event: str, **fields: object) -> None: 

23 _ = event 

24 _ = fields 

25 

26 def warning(self, event: str, **fields: object) -> None: 

27 _ = event 

28 _ = fields 

29 

30 def error(self, event: str, **fields: object) -> None: 

31 _ = event 

32 _ = fields 

33 

34 

35NULL_LOGGER = NullStructuredLogger() 

36 

37 

38async def provide_mariadb_server() -> AsyncSessionFixture[TemporaryMariaDBServer]: 

39 """Provide a local MariaDB server for medium integration tests.""" 

40 

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