from app.errors import ComfyUIError, InvalidRequest, Unauthorized, error_body from app.schemas import ImageGenerationRequest import pytest def test_error_body_canonical_shape(): body = error_body("boom", "server_error", "comfyui_timeout") assert body == {"error": {"message": "boom", "type": "server_error", "param": None, "code": "comfyui_timeout"}} def test_exception_status_mapping(): assert InvalidRequest("x").status == 400 assert Unauthorized().status == 401 assert ComfyUIError("x").status == 502 def test_generation_request_defaults(): r = ImageGenerationRequest(prompt="p") assert r.size == "1024x1024" assert r.n == 1 assert r.seed is None assert r.model is None @pytest.mark.parametrize("bad", ["", "abc", "1024", "1024x", "0x10", "10x0"]) def test_size_validation(bad): with pytest.raises(ValueError): ImageGenerationRequest(prompt="p", size=bad)