"""Integration tests for the /engine/trace endpoint.""" import json import cv2 import numpy as np import pytest from fastapi.testclient import TestClient from main import app client = TestClient(app) def _make_test_png(width: int = 100, height: int = 100) -> bytes: """Create a simple test PNG with a white rectangle on black background.""" img = np.zeros((height, width, 3), dtype=np.uint8) cv2.rectangle(img, (20, 20), (80, 80), (255, 255, 255), -1) ok, buf = cv2.imencode(".png", img) assert ok return buf.tobytes() @pytest.fixture def test_png() -> bytes: return _make_test_png() class TestTraceEndpointPotrace: """Tests for /engine/trace with mode=potrace.""" def test_basic_trace(self, test_png): resp = client.post( "/engine/trace", files={"file": ("test.png", test_png, "image/png")}, data={"mode": "potrace"}, ) assert resp.status_code == 200 body = resp.json() assert body["format"] == "svg" assert "= 1 def test_custom_params(self, test_png): resp = client.post( "/engine/trace", files={"file": ("test.png", test_png, "image/png")}, data={ "mode": "potrace", "params": json.dumps({"turdsize": 5, "alphamax": 0.5}), }, ) assert resp.status_code == 200 assert "