feat: add session updates and message dialogs
This commit is contained in:
@@ -146,6 +146,34 @@ class DynamicVariableTests(unittest.TestCase):
|
||||
self.assertEqual(store.values["system__agent_turns"], 1)
|
||||
self.assertIn("查订单", store.values["system__conversation_history"])
|
||||
|
||||
def test_session_assignment_is_declared_typed_and_atomic(self):
|
||||
store = DynamicVariableStore(
|
||||
{"panel_open": False, "selection": "none"},
|
||||
variable_types={
|
||||
"panel_open": "boolean",
|
||||
"selection": "string",
|
||||
},
|
||||
)
|
||||
|
||||
changed = store.assign_declared_many(
|
||||
{"panel_open": True, "selection": "confirmed"}
|
||||
)
|
||||
self.assertEqual(changed, ["panel_open", "selection"])
|
||||
self.assertEqual(
|
||||
store.public_values(),
|
||||
{"panel_open": True, "selection": "confirmed"},
|
||||
)
|
||||
|
||||
with self.assertRaisesRegex(DynamicVariableError, "类型应为 boolean"):
|
||||
store.assign_declared_many(
|
||||
{"selection": "cancelled", "panel_open": "yes"}
|
||||
)
|
||||
self.assertEqual(store.values["selection"], "confirmed")
|
||||
self.assertIs(store.values["panel_open"], True)
|
||||
|
||||
with self.assertRaisesRegex(DynamicVariableError, "未声明"):
|
||||
store.assign_declared_many({"unknown_state": True})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user