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
« prev ^ index » next coverage.py v7.7.1, created at 2025-03-26 18:26 -0600
1"""Pytest configuration for unit tests"""
3# pylint: disable=C0116
4from unittest.mock import MagicMock, patch
5import pytest
6import click
7from es_fieldusage.main import FieldUsage
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
21# Fixture for Click context
22@pytest.fixture
23def click_context():
24 ctx = MagicMock(spec=click.Context)
25 ctx.obj = {'configdict': {}}
26 return ctx
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
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="*")