Skip to content

Commit 460b848

Browse files
committed
address comments
1 parent 86590ca commit 460b848

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

comfy_execution/jobs.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ class JobStatus:
1010
IN_PROGRESS = 'in_progress'
1111
COMPLETED = 'completed'
1212
FAILED = 'failed'
13-
CANCELLED = 'cancelled'
1413

15-
ALL = [PENDING, IN_PROGRESS, COMPLETED, FAILED, CANCELLED]
14+
ALL = [PENDING, IN_PROGRESS, COMPLETED, FAILED]
1615

1716

1817
# Media types that can be previewed in the frontend
@@ -86,7 +85,7 @@ def normalize_history_item(prompt_id, history_item, include_outputs=False):
8685
else:
8786
status = JobStatus.COMPLETED
8887

89-
outputs = history_item.get('outputs', {})
88+
outputs = history_item.get('outputs') or {}
9089
outputs_count, preview_output = get_outputs_summary(outputs)
9190

9291
execution_error = None
@@ -150,6 +149,8 @@ def get_outputs_summary(outputs):
150149
continue
151150

152151
for item in items:
152+
if not isinstance(item, dict):
153+
continue
153154
count += 1
154155

155156
if preview_output is None and is_previewable(media_type, item):

server.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -703,20 +703,23 @@ async def get_jobs(request):
703703
status_param = query.get("status", None)
704704
status_filter = None
705705
if status_param:
706-
status_filter = [s.strip() for s in status_param.split(',') if s.strip()]
706+
status_filter = [s.strip().lower() for s in status_param.split(',') if s.strip()]
707707
valid_statuses = set(JobStatus.ALL)
708-
status_filter = [s for s in status_filter if s in valid_statuses]
709-
if not status_filter:
710-
status_filter = None
708+
invalid_statuses = [s for s in status_filter if s not in valid_statuses]
709+
if invalid_statuses:
710+
return web.json_response(
711+
{"error": f"Invalid status value(s): {', '.join(invalid_statuses)}. Valid values: {', '.join(JobStatus.ALL)}"},
712+
status=400
713+
)
711714

712-
sort_by = query.get('sort_by', 'created_at')
715+
sort_by = query.get('sort_by', 'created_at').lower()
713716
if sort_by not in {'created_at', 'execution_duration'}:
714717
return web.json_response(
715718
{"error": "sort_by must be 'created_at' or 'execution_duration'"},
716719
status=400
717720
)
718721

719-
sort_order = query.get('sort_order', 'desc')
722+
sort_order = query.get('sort_order', 'desc').lower()
720723
if sort_order not in {'asc', 'desc'}:
721724
return web.json_response(
722725
{"error": "sort_order must be 'asc' or 'desc'"},

tests/execution/test_jobs.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,14 @@ def test_status_values(self):
1919
assert JobStatus.IN_PROGRESS == 'in_progress'
2020
assert JobStatus.COMPLETED == 'completed'
2121
assert JobStatus.FAILED == 'failed'
22-
assert JobStatus.CANCELLED == 'cancelled'
2322

2423
def test_all_contains_all_statuses(self):
2524
"""ALL should contain all status values."""
2625
assert JobStatus.PENDING in JobStatus.ALL
2726
assert JobStatus.IN_PROGRESS in JobStatus.ALL
2827
assert JobStatus.COMPLETED in JobStatus.ALL
2928
assert JobStatus.FAILED in JobStatus.ALL
30-
assert JobStatus.CANCELLED in JobStatus.ALL
31-
assert len(JobStatus.ALL) == 5
29+
assert len(JobStatus.ALL) == 4
3230

3331

3432
class TestIsPreviewable:

0 commit comments

Comments
 (0)