Coverage for tests/unit/test_cls_ilm.py: 100%
45 statements
« prev ^ index » next coverage.py v7.5.0, created at 2024-04-23 13:14 -0600
« prev ^ index » next coverage.py v7.5.0, created at 2024-04-23 13:14 -0600
1"""Test functions in es_testbed.defaults"""
2# pylint: disable=missing-function-docstring,redefined-outer-name
3import pytest
4from es_testbed.defaults import TESTPLAN
5from es_testbed.classes.ilm import IlmBuilder
7@pytest.fixture
8def ilm():
9 yield IlmBuilder()
11@pytest.fixture
12def hot():
13 return {'actions': {
14 'rollover': {'max_age': '1d', 'max_primary_shard_size': '1gb'}}}
16@pytest.fixture
17def cold():
18 return {'actions': {
19 'searchable_snapshot': {'snapshot_repository': 'repo'}}, 'min_age': '3d'}
21@pytest.fixture
22def delete():
23 return {'actions': {'delete': {}}, 'min_age': '5d'}
25@pytest.fixture
26def phases():
27 def _phases(**kwargs):
28 retval = {'phases':{}}
29 for key in ['hot', 'warm', 'cold', 'frozen', 'delete']:
30 if key in kwargs and kwargs[key] is not None:
31 retval['phases'][key] = kwargs[key]
32 if 'fm' in kwargs and kwargs['fm'] is True:
33 mns = kwargs['mns'] if 'mns' in kwargs else 1
34 retval['phases']['hot']['actions']['forcemerge'] = {'max_num_segments': mns}
35 return retval
36 return _phases
38def test_cls_ilm_defaults(ilm):
39 for key in ['tiers', 'forcemerge', 'max_num_segments', 'repository']:
40 assert getattr(ilm, key) == TESTPLAN['ilm'][key]
42def test_cls_ilm_defaults_policy(ilm, hot, delete, phases):
43 # assert ilm.policy == {'phases': {'hot': hot, 'delete': delete}}
44 assert ilm.policy == phases(hot=hot, delete=delete)
46def test_cls_ilm_forcemerge(ilm, hot, delete, phases):
47 ilm.forcemerge = True
48 # assert ilm.policy == {'phases': {'hot': forcemerge(mns=1), 'delete': delete}}
49 assert ilm.policy == phases(hot=hot, delete=delete, fm=True)
51def test_cls_ilm_mns(ilm, hot, delete, phases):
52 val = 2
53 ilm.forcemerge = True
54 ilm.max_num_segments = val
55 assert ilm.policy == phases(hot=hot, delete=delete, fm=True, mns=2)
57def test_cls_ilm_cold(ilm, hot, cold):
58 expected = {'phases': {'hot': hot, 'cold': cold}}
59 ilm.tiers = ['hot', 'cold']
60 ilm.repository = 'repo'
61 assert ilm.policy['phases'].keys() == expected['phases'].keys()