Skip to content

Commit

Permalink
move more fixtures to conftest
Browse files Browse the repository at this point in the history
  • Loading branch information
ankona committed Jan 24, 2024
1 parent 6e20947 commit 45eb41e
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 140 deletions.
71 changes: 71 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
70 changes: 0 additions & 70 deletions tests/test_collector_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
70 changes: 0 additions & 70 deletions tests/test_collectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down

0 comments on commit 45eb41e

Please sign in to comment.