REPOSITORY
via/fruit-multi-robot-control Private
[참조 MVP] 과채류 다중로봇 관제 — 작업 주문, 로봇 가용성, OTA 상태를 연결하는 SaaS 관제 참조 MVP입니다.
https://git.agrithing.ai/via/fruit-multi-robot-control.git 8232a9c feat: 과채류 다중로봇 관제 구체 MVP 구현
9216e1f ci: add static dynamic and evidence gates
8af54e0 feat: add executable institution reference MVP
8c9cb0d docs: define product role and interface contract
1 items · feat/concrete-mvp-v2
·/ tests/test_component.py
python · 1.2 KB · aeb8517 Download
from __future__ import annotationsimport jsonimport unittestfrom pathlib import Pathfrom asw_component import executeROOT = Path(__file__).resolve().parents[1]class ComponentTest(unittest.TestCase): def test_reference_scenario(self): payload = json.loads((ROOT / "examples/input.json").read_text(encoding="utf-8")) result = execute(payload) self.assertTrue(result["accepted"]) self.assertEqual(result["component"], "via/fruit-multi-robot-control") self.assertEqual(result["target"], "service") self.assertEqual(result["status"], "ASSIGNED") self.assertEqual(result["assignment"]["robotId"], "fruit-bot-01") self.assertEqual(result["assignment"]["taskCount"], 12) def test_safety_or_failure_path(self): payload = json.loads((ROOT / "examples/failure-input.json").read_text(encoding="utf-8")) result = execute(payload) self.assertEqual(result["component"], "via/fruit-multi-robot-control") self.assertFalse(result["accepted"]) self.assertEqual(result["status"], "QUEUED") self.assertEqual(result["queueReason"], "NO_ELIGIBLE_ROBOT")if __name__ == "__main__": unittest.main()