Skip to content

Commit e169fd2

Browse files
committed
Fix quarter_hour support
1 parent 4f972a7 commit e169fd2

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

gefapi/routes/api/v1/stats.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def get_execution_stats():
193193
194194
Query Parameters:
195195
- period: Time period filter (last_day, last_week, last_month, last_year, all)
196-
- group_by: Grouping interval (hour, day, week, month)
196+
- group_by: Grouping interval (quarter_hour, hour, day, week, month)
197197
- task_type: Filter by specific task type
198198
- status: Filter by execution status (PENDING, RUNNING, FINISHED, FAILED, CANCELLED)
199199
@@ -270,7 +270,7 @@ def get_execution_stats():
270270
detail=f"Invalid period. Must be one of: {', '.join(valid_periods)}",
271271
)
272272

273-
valid_group_by = ["hour", "day", "week", "month"]
273+
valid_group_by = ["quarter_hour", "hour", "day", "week", "month"]
274274
if group_by not in valid_group_by:
275275
return error(
276276
status=400,

tests/routes/api/v1/test_stats.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,28 @@ def test_execution_stats_with_filters(
331331
status="FINISHED",
332332
)
333333

334+
@patch("gefapi.utils.permissions.is_superadmin")
335+
@patch.object(StatsService, "get_execution_stats")
336+
def test_execution_stats_quarter_hour_group_by(
337+
self, mock_get_stats, mock_is_superadmin, client, auth_headers_superadmin
338+
):
339+
"""Execution stats should accept quarter-hour grouping."""
340+
mock_is_superadmin.return_value = True
341+
mock_get_stats.return_value = self.sample_execution_stats
342+
343+
response = client.get(
344+
"/api/v1/stats/executions?period=last_day&group_by=quarter_hour",
345+
headers=auth_headers_superadmin,
346+
)
347+
348+
assert response.status_code == 200
349+
mock_get_stats.assert_called_once_with(
350+
period="last_day",
351+
group_by="quarter_hour",
352+
task_type=None,
353+
status=None,
354+
)
355+
334356
@patch("gefapi.utils.permissions.is_superadmin")
335357
def test_execution_stats_invalid_status(
336358
self, mock_is_superadmin, client, auth_headers_superadmin

0 commit comments

Comments
 (0)