Coverage for tests/testing/mariadb/test_server_fixture.py: 100%

21 statements  

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

1"""MariaDB test server fixture contract tests.""" 

2 

3from __future__ import annotations 

4 

5from pathlib import Path 

6from tempfile import TemporaryDirectory 

7 

8from snektest import assert_eq, assert_in, load_fixture, test 

9 

10from snekql.testing.mariadb import temporary_mariadb_server 

11from tests.helpers import provide_mariadb_server 

12 

13 

14@test(mark="medium") 

15async def mariadb_server_fixture_starts_queryable_server() -> None: 

16 """The shared fixture provides a local unprivileged MariaDB server.""" 

17 

18 server = await load_fixture(provide_mariadb_server()) 

19 result = await server.run_sql("SELECT 1") 

20 

21 assert_in("1", result.stdout) 

22 

23 

24@test(mark="medium") 

25async def mariadb_server_fixture_reset_drops_tables_from_reused_data_dir() -> None: 

26 """The shared fixture can reuse a data directory without stale tables.""" 

27 

28 with TemporaryDirectory() as temporary_directory: 

29 data_directory = Path(temporary_directory) / "data" 

30 async with temporary_mariadb_server(data_directory=data_directory) as server: 

31 _ = await server.run_sql("CREATE TABLE stale_fixture_table (`id` INT)") 

32 

33 async with temporary_mariadb_server(data_directory=data_directory) as server: 

34 await server.reset_database() 

35 result = await server.run_sql("SHOW TABLES LIKE 'stale_fixture_table'") 

36 

37 assert_eq(result.stdout, "")