guanghu-ice-heart/server-tools/tcs-mother-body/cognitive-gateway.test.py

31 lines
1.8 KiB
Python

#!/usr/bin/env python3
import importlib.util
from pathlib import Path
import unittest
SCRIPT = Path(__file__).with_name("cognitive-gateway.py")
SPEC = importlib.util.spec_from_file_location("gateway", SCRIPT)
MODULE = importlib.util.module_from_spec(SPEC)
SPEC.loader.exec_module(MODULE)
class CognitiveGatewayTest(unittest.TestCase):
def test_dynamic_persona_routes_are_bounded_to_registered_id_shape(self):
self.assertEqual(MODULE.endpoint("zy-rpc persona-status ICE-BB-0005"), ("GET", "/v1/persona/ICE-BB-0005/status"))
self.assertEqual(MODULE.endpoint("zy-rpc persona-ingest ICE-BB-0003"), ("POST", "/v1/persona/ICE-BB-0003/ingest"))
self.assertEqual(MODULE.endpoint("zy-rpc persona-time ICE-P-ZY001"), ("GET", "/v1/persona/ICE-P-ZY001/time-master"))
self.assertEqual(MODULE.endpoint("zy-rpc zero-core-entry"), ("GET", "/v1/entry/resolve?domain=DOM-FIFTH-0001&channel=ICE-CH-ZC001"))
self.assertEqual(MODULE.endpoint("zy-rpc zero-core-system-dialogue"), ("POST", "/v1/system/zero-core/dialogue"))
self.assertEqual(MODULE.endpoint("zy-rpc fifth-domain-controller-status"), ("GET", "/v1/fifth-domain/controller/status"))
self.assertEqual(MODULE.endpoint("zy-rpc fifth-domain-controller-challenge"), ("POST", "/v1/fifth-domain/controller/challenge"))
self.assertEqual(MODULE.endpoint("zy-rpc fifth-domain-controller-enter"), ("POST", "/v1/fifth-domain/controller/enter"))
def test_unknown_or_injected_persona_command_is_rejected(self):
with self.assertRaisesRegex(ValueError, "ACTION_NOT_REGISTERED"):
MODULE.endpoint("zy-rpc persona-status ICE-BB-0005;id")
with self.assertRaisesRegex(ValueError, "ACTION_NOT_REGISTERED"):
MODULE.endpoint("zy-rpc persona-status ICE-GL-SY001")
if __name__ == "__main__":
unittest.main()