Files
mediaproc/tests/detect/test_config_endpoint.py
2026-03-26 07:40:14 -03:00

45 lines
1.3 KiB
Python

"""Tests for the config endpoint and stage palette."""
from detect.stages import list_stages, get_palette
def test_stage_palette_has_config_fields():
"""Every stage with config fields should be servable by the endpoint."""
stages = list_stages()
stages_with_config = [s for s in stages if s.config_fields]
assert len(stages_with_config) > 0
for stage in stages_with_config:
for field in stage.config_fields:
assert field.name
assert field.type
assert field.default is not None or field.type == "bool"
def test_palette_categories():
palette = get_palette()
expected_categories = {"preprocessing", "detection", "resolution", "escalation", "output"}
actual_categories = set(palette.keys())
assert actual_categories == expected_categories
def test_stage_config_serializable():
"""Config fields should be JSON-serializable for the API response."""
import json
stages = list_stages()
for stage in stages:
data = {
"name": stage.name,
"label": stage.label,
"config_fields": [
{"name": f.name, "type": f.type, "default": f.default}
for f in stage.config_fields
],
}
json_str = json.dumps(data)
assert len(json_str) > 0