init
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from cognitive_agent.application.capability_registry import CapabilityRegistry
|
||||
from cognitive_agent.application.seat_service import REPOSITORY_ROOT
|
||||
from cognitive_agent.infrastructure.llm.openai_responses import build_intent_schema
|
||||
|
||||
|
||||
class CapabilityRegistryTests(unittest.TestCase):
|
||||
def test_loads_domain_owned_capabilities_and_execution_availability(self) -> None:
|
||||
snapshot = CapabilityRegistry(REPOSITORY_ROOT, {"seat"}).snapshot()
|
||||
domains = {item["domain"]: item for item in snapshot["domains"]}
|
||||
|
||||
self.assertEqual(domains["seat"]["availability"], "executable")
|
||||
self.assertEqual(domains["climate"]["availability"], "catalog_only")
|
||||
seat_capabilities = {item["name"] for item in domains["seat"]["capabilities"]}
|
||||
self.assertIn("seat.set_backrest_recline", seat_capabilities)
|
||||
self.assertIn("seat.set_legrest_extension", seat_capabilities)
|
||||
self.assertIn("seat.save_posture_preset", seat_capabilities)
|
||||
self.assertIn("seat.apply_posture_preset", seat_capabilities)
|
||||
self.assertNotIn("seat.set_height", seat_capabilities)
|
||||
self.assertIn(
|
||||
"prefer_executable_when_equally_suitable",
|
||||
snapshot["execution_policy"]["capability_selection"],
|
||||
)
|
||||
self.assertFalse(snapshot["execution_policy"]["named_preset_required"])
|
||||
self.assertEqual(
|
||||
snapshot["execution_policy"]["planning_environment"],
|
||||
"dry_run_candidate_synthesis",
|
||||
)
|
||||
self.assertIn(
|
||||
"vehicle",
|
||||
next(
|
||||
item
|
||||
for item in domains["climate"]["capabilities"]
|
||||
if item["name"] == "climate.set_fan_level"
|
||||
)["target_scopes"],
|
||||
)
|
||||
|
||||
def test_structured_output_schema_is_derived_from_registry(self) -> None:
|
||||
snapshot = CapabilityRegistry(REPOSITORY_ROOT, {"seat"}).snapshot()
|
||||
schema = build_intent_schema(snapshot)
|
||||
properties = schema["properties"]
|
||||
|
||||
self.assertIn("climate", properties["detected_domains"]["items"]["enum"])
|
||||
request = properties["requests"]["items"]["properties"]
|
||||
self.assertIn("climate.set_fan_level", request["capability"]["enum"])
|
||||
self.assertIn("seat.set_cushion_tilt", request["capability"]["enum"])
|
||||
self.assertIn("seat.save_posture_preset", request["capability"]["enum"])
|
||||
self.assertIn("save", request["operation"]["enum"])
|
||||
self.assertIn("apply", request["operation"]["enum"])
|
||||
self.assertIn("vehicle", request["target_scope"]["enum"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user