#!/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()