Keep source, config, and deploy files. Leave runtime data, uploads, and logs out of git. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import os
|
|
|
|
import pytest
|
|
|
|
os.environ.setdefault("KAMIDSO_ENV", "development")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_engine_llm_worker_loads_under_kamidso_lifecycle(monkeypatch):
|
|
if not os.environ.get("OPENAI_API_KEY"):
|
|
pytest.skip("OPENAI_API_KEY is required to boot the embedded LLM worker")
|
|
monkeypatch.setenv("KAMIDSO_ENV", "development")
|
|
import kamidso.settings.flags as flags
|
|
|
|
flags._SETTINGS = None
|
|
from kamidso.bootstrap.application import create_application
|
|
from kamidso.integrations.engine.runtime import _worker_is_started
|
|
from kamidso.settings.flags import load_kamidso_settings
|
|
from kamidso.engine.core.model.cluster.worker.manager import worker_manager
|
|
|
|
app = await create_application(load_kamidso_settings())
|
|
assert app.engine_runtime.ready, app.engine_runtime.error
|
|
assert app.engine_runtime.workers_started, app.engine_runtime.error
|
|
|
|
llm_workers = [
|
|
instance.worker
|
|
for instances in (worker_manager.worker_manager.workers or {}).values()
|
|
for instance in instances
|
|
if "@llm" in instance.worker_key
|
|
]
|
|
assert llm_workers, "expected at least one LLM worker"
|
|
assert all(_worker_is_started(worker) for worker in llm_workers), (
|
|
"LLM worker model was not loaded; proxy_llm_client would fail at inference"
|
|
)
|
|
|