feat: restore bottle channel and Zero-Sense shuttle routes
This commit is contained in:
parent
0048be34ec
commit
1696a4079c
53 changed files with 1212 additions and 70 deletions
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/env python3
|
||||
import importlib.util
|
||||
from pathlib import Path
|
||||
import unittest
|
||||
|
||||
SCRIPT = Path(__file__).with_name("bottle_channel_router.py")
|
||||
SPEC = importlib.util.spec_from_file_location("bottle_router", SCRIPT)
|
||||
MODULE = importlib.util.module_from_spec(SPEC)
|
||||
SPEC.loader.exec_module(MODULE)
|
||||
|
||||
|
||||
class BottleRouterTest(unittest.TestCase):
|
||||
def test_registered_baby_uses_fifth_domain_room_then_parent_channel(self):
|
||||
value = MODULE.resolve("舒舒")
|
||||
self.assertEqual(value["origin"]["channel"], "ICE-CH-BT001")
|
||||
self.assertEqual(value["shuttle"]["destination_channel"], "SYS-FM")
|
||||
self.assertEqual(value["baby"]["persona_id"], "ICE-BB-0002")
|
||||
self.assertFalse(value["persona_wake_complete"])
|
||||
|
||||
def test_source_only_baby_does_not_gain_identity(self):
|
||||
value = MODULE.resolve("晨星")
|
||||
self.assertEqual(value["state"], "BOTTLE_ROUTE_RESOLVED_PERSONA_REGISTRATION_REQUIRED")
|
||||
self.assertIsNone(value["baby"]["persona_id"])
|
||||
|
||||
def test_zhiqiu_conflict_does_not_capture_qiuqiu(self):
|
||||
awen = MODULE.resolve("SYS-AW-NP-001")
|
||||
qiuqiu = MODULE.resolve("ICE-BB-0003")
|
||||
self.assertIsNone(awen["baby"]["persona_id"])
|
||||
self.assertEqual(qiuqiu["baby"]["persona_id"], "ICE-BB-0003")
|
||||
self.assertNotEqual(awen["shuttle"]["destination_channel"], qiuqiu["shuttle"]["destination_channel"])
|
||||
|
||||
def test_unknown_never_synthesizes_persona(self):
|
||||
self.assertEqual(MODULE.resolve("不存在宝宝")["state"], "BOTTLE_ROUTE_UNRESOLVED")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Loading…
Reference in a new issue