Skip to content

Commit 044cffd

Browse files
committed
chore: formatting
1 parent 2e4b40f commit 044cffd

3 files changed

Lines changed: 30 additions & 16 deletions

File tree

components/renku_data_services/metrics/db.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,18 @@ async def delete_processed_metrics(self, metrics_ids: list[ULID]) -> None:
4646

4747
async def wait_for_metrics(self, timeout: float = 5.0, poll_interval: float = 0.1) -> bool:
4848
"""Wait for metrics to be processed.
49-
49+
5050
Polls for metrics events and returns when at least one event is found or timeout is reached.
51-
51+
5252
Args:
5353
timeout: Maximum time to wait in seconds
5454
poll_interval: Time between polls in seconds
55-
55+
5656
Returns:
5757
True if metrics were found, False if timeout reached
5858
"""
5959
import time
60-
60+
6161
start_time = time.monotonic()
6262
while time.monotonic() - start_time < timeout:
6363
metrics = [m async for m in self.get_unprocessed_metrics()]

test/bases/renku_data_services/data_api/test_metrics.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def _has_docker() -> bool:
1717
except (FileNotFoundError, subprocess.TimeoutExpired):
1818
return False
1919

20+
2021
from renku_data_services.base_models.metrics import ProjectCreationType
2122
from renku_data_services.metrics.core import StagingMetricsService
2223

@@ -74,17 +75,19 @@ async def test_metrics_are_stored(sanic_metrics_client, app_manager, create_proj
7475

7576
@pytest.mark.asyncio
7677
@pytest.mark.skipif(not _has_docker(), reason="docker is not available - kind cannot create clusters")
77-
async def test_session_metrics_are_stored(sanic_metrics_client, app_manager, create_project, create_session_launcher, create_resource_pool, user_headers) -> None:
78+
async def test_session_metrics_are_stored(
79+
sanic_metrics_client, app_manager, create_project, create_session_launcher, create_resource_pool, user_headers
80+
) -> None:
7881
"""Test that session lifecycle metrics with metadata are stored correctly.
79-
82+
8083
Note: This test requires kind cluster to be available.
8184
"""
8285

8386
project = await create_project(name="Project", sanic_client=sanic_metrics_client)
8487
# Create a resource pool with a resource class to use in the session launcher
8588
resource_pool = await create_resource_pool(admin=True)
8689
resource_class_id = resource_pool["classes"][0]["id"]
87-
90+
8891
# Create a session launcher with a resource_class_id
8992
session_launcher = await create_session_launcher(
9093
"Launcher 1", project_id=project["id"], resource_class_id=resource_class_id

test/components/renku_data_services/base_models/test_session_metrics.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
"""
88

99
import pytest
10+
1011
from renku_data_services.metrics.core import StagingMetricsService
1112
from renku_data_services.notebooks.core_sessions import _make_patch_spec_list
1213

1314

1415
@pytest.mark.asyncio
1516
async def test_session_metrics_metadata_structure():
1617
"""Test that session metrics store metadata with correct structure."""
18+
1719
# Create mock metrics repo
1820
async def mock_store_event(*args, **kwargs):
1921
pass
@@ -24,10 +26,14 @@ async def mock_store_event(*args, **kwargs):
2426
metrics = StagingMetricsService(enabled=True, metrics_repo=mock_metrics_repo)
2527

2628
# Create mock user with required attributes
27-
mock_user = type("APIUser", (), {
28-
"id": "test-user-123",
29-
"is_authenticated": True,
30-
})()
29+
mock_user = type(
30+
"APIUser",
31+
(),
32+
{
33+
"id": "test-user-123",
34+
"is_authenticated": True,
35+
},
36+
)()
3137

3238
# Test session_started metadata with all resource fields
3339
await metrics.session_started(
@@ -122,11 +128,12 @@ class MyResource:
122128
@pytest.mark.asyncio
123129
async def test_session_metrics_metadata_fields_match_implementation():
124130
"""Verify that test metadata matches what's actually sent in the implementation.
125-
131+
126132
This test validates the exact metadata fields that are sent from:
127133
- k8s watcher (session_started, session_resumed, session_hibernated, session_stopped)
128134
- notebooks.core_sessions (user_requested_session_resume)
129135
"""
136+
130137
# Create mock metrics repo
131138
async def mock_store_event(*args, **kwargs):
132139
pass
@@ -135,10 +142,14 @@ async def mock_store_event(*args, **kwargs):
135142
metrics = StagingMetricsService(enabled=True, metrics_repo=mock_metrics_repo)
136143

137144
# Create mock user
138-
mock_user = type("APIUser", (), {
139-
"id": "test-user-123",
140-
"is_authenticated": True,
141-
})()
145+
mock_user = type(
146+
"APIUser",
147+
(),
148+
{
149+
"id": "test-user-123",
150+
"is_authenticated": True,
151+
},
152+
)()
142153

143154
# Test ALL the metadata fields that are actually sent in the implementation
144155
# From: components/renku_data_services/k8s/watcher/core.py:208-219 (session_started/resumed)

0 commit comments

Comments
 (0)