diff --git a/conftest.py b/conftest.py index 2dc9deb3a5..b48d38dbba 100644 --- a/conftest.py +++ b/conftest.py @@ -720,3 +720,74 @@ async def save(self, **kwargs: t.Any) -> None: @pytest.fixture def mock_sink() -> t.Type[MockSink]: return MockSink + + +@pytest.fixture +def mock_con(): + """Generates mock db connection telemetry""" + def _mock_con(min=1, max=1000): + i = min + while True: + yield [{"addr": f"127.0.0.{i}:1234"}, {"addr": f"127.0.0.{i}:2345"}] + i += 1 + if i > max: + return None + + return _mock_con + + +@pytest.fixture +def mock_mem(): + """Generates mock db memory usage telemetry""" + def _mock_mem(min=1, max=1000): + i = min + while True: + yield { + "total_system_memory": 1000 * i, + "used_memory": 1111 * i, + "used_memory_peak": 1234 * i, + } + i += 1 + if i > max: + return None + + return _mock_mem + + +@pytest.fixture +def mock_redis(): + def _mock_redis( + is_conn: bool = True, + conn_side_effect=None, + mem_stats=None, + client_stats=None, + coll_side_effect=None, + ): + """Generate a mock object for the redis.Redis contract""" + class MockConn: + def __init__(self, *args, **kwargs) -> None: + if conn_side_effect is not None: + conn_side_effect() + + async def info(self) -> t.Dict[str, t.Any]: + if coll_side_effect: + await coll_side_effect() + + if mem_stats: + return next(mem_stats) + return { + "ts": 111, + "total_system_memory": "111", + "used_memory": "222", + "used_memory_peak": "333", + } + + async def client_list(self) -> t.Dict[str, t.Any]: + if coll_side_effect: + await coll_side_effect() + + if client_stats: + return next(client_stats) + return {"ts": 111, "addr": "127.0.0.1"} + return MockConn + return _mock_redis diff --git a/tests/test_collector_manager.py b/tests/test_collector_manager.py index 3ac1aa8193..aebf5d3535 100644 --- a/tests/test_collector_manager.py +++ b/tests/test_collector_manager.py @@ -44,76 +44,6 @@ pytestmark = pytest.mark.group_a -@pytest.fixture -def mock_con(): - def _mock_con(min=1, max=1000): - i = min - while True: - yield [{"addr": f"127.0.0.{i}:1234"}, {"addr": f"127.0.0.{i}:2345"}] - i += 1 - if i > max: - return None - - return _mock_con - - -@pytest.fixture -def mock_mem(): - def _mock_mem(min=1, max=1000): - i = min - while True: - yield { - "total_system_memory": 1000 * i, - "used_memory": 1111 * i, - "used_memory_peak": 1234 * i, - } - i += 1 - if i > max: - return None - - return _mock_mem - - -@pytest.fixture -def mock_redis(): - def _mock_redis( - is_conn: bool = True, - conn_side_effect=None, - mem_stats=None, - client_stats=None, - coll_side_effect=None, - ): - class MockConn: - def __init__(self, *args, **kwargs) -> None: - if conn_side_effect is not None: - conn_side_effect() - - async def info(self) -> t.Dict[str, t.Any]: - if coll_side_effect: - await coll_side_effect() - - if mem_stats: - return next(mem_stats) - return { - "ts": 111, - "total_system_memory": "111", - "used_memory": "222", - "used_memory_peak": "333", - } - - async def client_list(self) -> t.Dict[str, t.Any]: - if coll_side_effect: - await coll_side_effect() - - if client_stats: - return next(client_stats) - return {"ts": 111, "addr": "127.0.0.1"} - - return MockConn - - return _mock_redis - - @pytest.fixture def mock_entity(test_dir): def _mock_entity( diff --git a/tests/test_collectors.py b/tests/test_collectors.py index db12ea96e3..9406aedd07 100644 --- a/tests/test_collectors.py +++ b/tests/test_collectors.py @@ -40,76 +40,6 @@ pytestmark = pytest.mark.group_a -@pytest.fixture -def mock_con(): - def _mock_con(min=1, max=1000): - i = min - while True: - yield [{"addr": f"127.0.0.{i}:1234"}, {"addr": f"127.0.0.{i}:2345"}] - i += 1 - if i > max: - return None - - return _mock_con - - -@pytest.fixture -def mock_mem(): - def _mock_mem(min=1, max=1000): - i = min - while True: - yield { - "total_system_memory": 1000 * i, - "used_memory": 1111 * i, - "used_memory_peak": 1234 * i, - } - i += 1 - if i > max: - return None - - return _mock_mem - - -@pytest.fixture -def mock_redis(): - def _mock_redis( - is_conn: bool = True, - conn_side_effect=None, - mem_stats=None, - client_stats=None, - coll_side_effect=None, - ): - class MockConn: - def __init__(self, *args, **kwargs) -> None: - if conn_side_effect is not None: - conn_side_effect() - - async def info(self) -> t.Dict[str, t.Any]: - if coll_side_effect: - await coll_side_effect() - - if mem_stats: - return next(mem_stats) - return { - "ts": 111, - "total_system_memory": "111", - "used_memory": "222", - "used_memory_peak": "333", - } - - async def client_list(self) -> t.Dict[str, t.Any]: - if coll_side_effect: - await coll_side_effect() - - if client_stats: - return next(client_stats) - return {"ts": 111, "addr": "127.0.0.1"} - - return MockConn - - return _mock_redis - - @pytest.fixture def mock_entity(test_dir): def _mock_entity(