39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
import unittest
|
|
import threading
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
import test_helper
|
|
|
|
from nodes.decision_node import DecisionManager, SaturnDecision
|
|
|
|
class TestDecisionNode(unittest.TestCase):
|
|
def setUp(self):
|
|
self.node = SaturnDecision()
|
|
|
|
def test_decision_manager_register_and_trigger(self):
|
|
uid = "test_decision_123"
|
|
event = threading.Event()
|
|
DecisionManager.register_wait(uid, event)
|
|
self.assertIn(uid, DecisionManager._waiting_events)
|
|
|
|
triggered = DecisionManager.trigger_action(uid, "cancel")
|
|
self.assertTrue(triggered)
|
|
self.assertTrue(event.is_set())
|
|
|
|
action = DecisionManager.get_action(uid)
|
|
self.assertEqual(action, "cancel")
|
|
self.assertNotIn(uid, DecisionManager._waiting_events)
|
|
|
|
def test_decision_disabled_mode(self):
|
|
res = self.node.decide(disable=True, send_os_notification=False, timeout=-1, unique_id="disabled_node")
|
|
self.assertEqual(res, (False,))
|
|
|
|
def test_decision_manager_unknown_id_default(self):
|
|
action = DecisionManager.get_action("non_existent_id")
|
|
self.assertEqual(action, "continue")
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|