Coverage for tests/unit/conftest.py: 88%

25 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-03-26 18:26 -0600

1"""Pytest configuration for unit tests""" 

2 

3# pylint: disable=C0116 

4from unittest.mock import MagicMock, patch 

5import pytest 

6import click 

7from es_fieldusage.main import FieldUsage 

8 

9 

10# Fixture for mocking FieldUsage 

11@pytest.fixture 

12def mock_field_usage(): 

13 field_usage = MagicMock(spec=FieldUsage) 

14 field_usage.report = {'accessed': {'field1': 1}, 'unaccessed': {'field2': 0}} 

15 field_usage.per_index_report = { 

16 'index1': {'accessed': {'field1': 1}, 'unaccessed': {'field2': 0}} 

17 } 

18 return field_usage 

19 

20 

21# Fixture for Click context 

22@pytest.fixture 

23def click_context(): 

24 ctx = MagicMock(spec=click.Context) 

25 ctx.obj = {'configdict': {}} 

26 return ctx 

27 

28 

29@pytest.fixture 

30def mock_client(): 

31 client = MagicMock() 

32 client.indices.field_usage_stats.return_value = { 

33 "index1": {"shards": [{"stats": {"fields": {"field1": {"any": 10}}}}]}, 

34 "_shards": {}, 

35 } 

36 client.indices.get_mapping.return_value = { 

37 "index1": {"mappings": {"properties": {"field1": {}}}} 

38 } 

39 return client 

40 

41 

42@pytest.fixture 

43def field_usage_instance(mock_client): 

44 with patch("es_fieldusage.main.get_client", return_value=mock_client): 

45 return FieldUsage(configdict={}, search_pattern="*")