F0: establish task backend input and native job spine
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""F0: explicit simulated backend, real application-owned Pipecat Jobs."""
|
||||
import asyncio
|
||||
import json
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
import unittest
|
||||
|
||||
from services.background_tasks.service import TaskService
|
||||
from tests.test_background_tasks import MemoryRepository, SimulatedExecutor
|
||||
|
||||
|
||||
class TaskBackendSpineTest(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_backend_resource_reaches_native_job_without_tool_definition(self):
|
||||
SimulatedExecutor.release = asyncio.Event()
|
||||
SimulatedExecutor.confirms_stop = True
|
||||
service = TaskService(MemoryRepository(), SimulatedExecutor)
|
||||
backend = SimpleNamespace(id="tb_smoke", type="opencode", config={"url": "https://simulated.test", "directory": "/demo", "timeout_seconds": 30}, secrets={})
|
||||
await service.start()
|
||||
try:
|
||||
task = await service.submit(assistant_id="asst_smoke", conversation_id="conv_smoke", backend=backend, instruction="SIMULATED task", invocation_id="smoke")
|
||||
SimulatedExecutor.release.set()
|
||||
async with asyncio.timeout(3):
|
||||
while (await service.get(task["id"])).status != "succeeded":
|
||||
await asyncio.sleep(.005)
|
||||
record = await service.get(task["id"])
|
||||
self.assertEqual(record.connection["_backend_type"], "opencode")
|
||||
self.assertTrue(record.job_id)
|
||||
artifact = Path(__file__).resolve().parents[2] / "implement-stage/task-backends/backend-spine-smoke.json"
|
||||
artifact.write_text(json.dumps({"simulated_remote": True, "native_job": "completed", "backend_id": backend.id, "tool_definition_required": False}) + "\n")
|
||||
finally:
|
||||
await service.close()
|
||||
Reference in New Issue
Block a user