test(integration): exercise public route entrypoint

This commit is contained in:
Dariusz L
2026-08-02 03:25:51 +02:00
parent c725dfa05f
commit e489c3fac7
+57
View File
@@ -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",
}