From e489c3fac7f2fa8bf28a633a2ee801b1a12d29c5 Mon Sep 17 00:00:00 2001 From: Dariusz L Date: Sun, 2 Aug 2026 03:25:51 +0200 Subject: [PATCH] test(integration): exercise public route entrypoint --- tests/test_entrypoint_integration.py | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/test_entrypoint_integration.py diff --git a/tests/test_entrypoint_integration.py b/tests/test_entrypoint_integration.py new file mode 100644 index 0000000..51dd3d2 --- /dev/null +++ b/tests/test_entrypoint_integration.py @@ -0,0 +1,57 @@ +import json +import sys +from types import ModuleType, SimpleNamespace + +import pytest + +from core import version as version_service +from core.extension import ModelResolverExtension + + +class _RecordingRoutes: + def __init__(self): + self.registered = {} + + def _decorator(self, method, path): + def register(handler): + self.registered[(method, path)] = handler + return handler + + return register + + def get(self, path): + return self._decorator("GET", path) + + def post(self, path): + return self._decorator("POST", path) + + +@pytest.mark.asyncio +async def test_extension_entrypoint_registers_routes_and_serves_version(monkeypatch): + routes = _RecordingRoutes() + server_module = ModuleType("server") + server_module.PromptServer = SimpleNamespace( + instance=SimpleNamespace(routes=routes) + ) + monkeypatch.setitem(sys.modules, "server", server_module) + monkeypatch.setattr( + version_service, + "_get_project_version_info", + lambda: {"version": "1.1.0", "latest_version": "1.1.0"}, + ) + + extension = ModelResolverExtension() + assert extension.setup_routes() is True + assert extension.routes_setup is True + assert ("GET", "/model_resolver/version") in routes.registered + assert ("POST", "/model_resolver/analyze") in routes.registered + + response = await routes.registered[("GET", "/model_resolver/version")]( + SimpleNamespace() + ) + + assert response.status == 200 + assert json.loads(response.text) == { + "version": "1.1.0", + "latest_version": "1.1.0", + }