cortex.6.sol / tests /test_orchestration.py
Frankenstein-Labs's picture
feat: add extensible orchestration foundation
91c4b21
Raw History Blame Contribute Delete
1.99 kB
from decimal import Decimal
import time
import pytest
from cortex_ai.orchestration import *
from cortex_ai.orchestration.errors import PolicyDenied
class EchoProvider(Provider):
id = "echo"
capabilities = frozenset({Capability.VISION, Capability.VIDEO_GENERATION})
local = True
def health(self): return True
def generate(self, request): return ProviderResult({"echo": request["text"]}, self.id, {"test": True})
def test_router_detects_mixed_request_and_privacy():
req = CapabilityRouter().route("Analyse cette facture confidentielle et génère une vidéo")
assert Capability.DOCUMENT_ANALYSIS in req.capabilities
assert Capability.VIDEO_GENERATION in req.capabilities
assert req.requires_async_job is True
assert req.requires_async is True
assert req.privacy_mode == PrivacyMode.LOCAL_ONLY
def test_registry_selects_provider_and_engine_returns_job_for_long_task():
jobs = JobManager()
engine = OrchestrationEngine(CapabilityRouter(), ProviderRegistry([EchoProvider()]), Policy(), jobs)
job = engine.execute("generate a video", preferred_provider="echo")
assert job.provider == "echo"
for _ in range(20):
if jobs.get(job.id).status == JobStatus.COMPLETED: break
time.sleep(0.01)
assert jobs.get(job.id).result.output["echo"] == "generate a video"
jobs.shutdown()
def test_local_only_policy_denies_external_provider():
class External(EchoProvider):
id = "external"; local = False
with pytest.raises(PolicyDenied):
OrchestrationEngine(CapabilityRouter(), ProviderRegistry([External()]), Policy(PrivacyMode.LOCAL_ONLY), JobManager()).execute("describe this image", preferred_provider="external")
def test_money_is_decimal_and_supports_gnf():
total = add(Money(Decimal("10.005"), "USD"), Money(Decimal("2.00"), "USD"))
assert total == Money(Decimal("12.01"), "USD")
assert convert(Money(Decimal("100"), "USD"), "GNF", Decimal("8500")).amount == Decimal("850000.00")