address comments

This commit is contained in:
Richard Yu 2025-12-08 14:54:53 -08:00
parent 86590ca403
commit 460b848669
3 changed files with 14 additions and 12 deletions

View File

@ -10,9 +10,8 @@ class JobStatus:
IN_PROGRESS = 'in_progress'
COMPLETED = 'completed'
FAILED = 'failed'
CANCELLED = 'cancelled'
ALL = [PENDING, IN_PROGRESS, COMPLETED, FAILED, CANCELLED]
ALL = [PENDING, IN_PROGRESS, COMPLETED, FAILED]
# Media types that can be previewed in the frontend
@ -86,7 +85,7 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False):
else:
status = JobStatus.COMPLETED
outputs = history_item.get('outputs', {})
outputs = history_item.get('outputs') or {}
outputs_count, preview_output = get_outputs_summary(outputs)
execution_error = None
@ -150,6 +149,8 @@ def get_outputs_summary(outputs):
continue
for item in items:
if not isinstance(item, dict):
continue
count += 1
if preview_output is None and is_previewable(media_type, item):

View File

@ -703,20 +703,23 @@ class PromptServer():
status_param = query.get("status", None)
status_filter = None
if status_param:
status_filter = [s.strip() for s in status_param.split(',') if s.strip()]
status_filter = [s.strip().lower() for s in status_param.split(',') if s.strip()]
valid_statuses = set(JobStatus.ALL)
status_filter = [s for s in status_filter if s in valid_statuses]
if not status_filter:
status_filter = None
invalid_statuses = [s for s in status_filter if s not in valid_statuses]
if invalid_statuses:
return web.json_response(
{"error": f"Invalid status value(s): {', '.join(invalid_statuses)}. Valid values: {', '.join(JobStatus.ALL)}"},
status=400
)
sort_by = query.get('sort_by', 'created_at')
sort_by = query.get('sort_by', 'created_at').lower()
if sort_by not in {'created_at', 'execution_duration'}:
return web.json_response(
{"error": "sort_by must be 'created_at' or 'execution_duration'"},
status=400
)
sort_order = query.get('sort_order', 'desc')
sort_order = query.get('sort_order', 'desc').lower()
if sort_order not in {'asc', 'desc'}:
return web.json_response(
{"error": "sort_order must be 'asc' or 'desc'"},

View File

@ -19,7 +19,6 @@ class TestJobStatus:
assert JobStatus.IN_PROGRESS == 'in_progress'
assert JobStatus.COMPLETED == 'completed'
assert JobStatus.FAILED == 'failed'
assert JobStatus.CANCELLED == 'cancelled'
def test_all_contains_all_statuses(self):
"""ALL should contain all status values."""
@ -27,8 +26,7 @@ class TestJobStatus:
assert JobStatus.IN_PROGRESS in JobStatus.ALL
assert JobStatus.COMPLETED in JobStatus.ALL
assert JobStatus.FAILED in JobStatus.ALL
assert JobStatus.CANCELLED in JobStatus.ALL
assert len(JobStatus.ALL) == 5
assert len(JobStatus.ALL) == 4
class TestIsPreviewable: