Coverage for tests/conftest.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-30 23:02 +0000

1"""Shared fixtures and helper classes for unit tests.""" 

2 

3from __future__ import annotations 

4 

5import dataclasses 

6from collections.abc import Iterator 

7 

8import pytest 

9 

10from bunches import settings 

11 

12 

13@dataclasses.dataclass 

14class Something: 

15 """Item with a `name` attribute.""" 

16 

17 name: str = 'something' 

18 

19 

20@dataclasses.dataclass 

21class Another: 

22 """Item with a different `name` attribute.""" 

23 

24 name: str = 'another' 

25 

26 

27class Unnamed: 

28 """Item without a `name` attribute.""" 

29 

30 

31@pytest.fixture(autouse = True) 

32def _reset_settings() -> Iterator[None]: 

33 """Restores the global settings after each test.""" 

34 namer = settings._KEY_NAMER 

35 subset_return = settings._SUBSET_RETURN 

36 yield 

37 settings._KEY_NAMER = namer 

38 settings._SUBSET_RETURN = subset_return