Beispiel #1
0
    def test_load_triggers(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)

        trigger_file = os.path.dirname(__file__) + os.sep + "triggers.txt"
        self.assertTrue(os.path.exists(trigger_file))

        config = FileStorageConfiguration()
        config._triggers_storage = FileStoreConfiguration(file=trigger_file, format="text", encoding="utf-8", delete_on_start=False)
        engine = FileStorageEngine(config)
        engine.initialise()

        storage_factory = StorageFactory()

        storage_factory._storage_engines[StorageFactory.TRIGGERS] = engine
        storage_factory._store_to_engine_map[StorageFactory.TRIGGERS] = engine

        mgr.load_triggers(storage_factory)

        triggers = mgr.get_triggers("SYSTEM_STARTUP")
        self.assertIsNotNone(triggers)
        self.assertEquals(2, len(triggers))

        triggers = mgr.get_triggers("SYSTEM_SHUTDOWN")
        self.assertIsNotNone(triggers)
        self.assertEquals(1, len(triggers))

        triggers = mgr.get_triggers("CONVERSATION_START")
        self.assertIsNotNone(triggers)
        self.assertEquals(1, len(triggers))
Beispiel #2
0
    def test_trigger_triggers(self):
        config = TriggerConfiguration()
        config._manager = "programytest.triggers.test_rest.MockRestTriggerManager"
        config._additionals["url"] = "http://localhost/api/1.0/ask"

        mgr = TriggerManager.load_trigger_manager(config)

        client = TestClient()
        client_context = client.create_client_context("testid")

        triggered = mgr.trigger("SYSTEM_STARTUP")
        self.assertTrue(triggered)

        triggered = mgr.trigger("SYSTEM_STARTUP", additional={"key": "value"})
        self.assertTrue(triggered)

        triggered = mgr.trigger("CONVERSATION_START", client_context)
        self.assertTrue(triggered)

        triggered = mgr.trigger("OTHER_EVENT")
        self.assertTrue(triggered)

        triggered = mgr.trigger("OTHER_EVENT", client_context)
        self.assertTrue(triggered)

        triggered = mgr.trigger("OTHER_EVENT", client_context, additional={"key": "value"})
        self.assertTrue(triggered)
Beispiel #3
0
    def test_init_with_events(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)

        self.assertIsInstance(mgr, TriggerManager)
Beispiel #4
0
    def test_add_trigger(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)

        mgr.add_trigger("SYSTEM_STARTUP", "programytest.triggers.trigger1.Trigger1")

        self.assertTrue("SYSTEM_STARTUP" in mgr.triggers)
Beispiel #5
0
    def test_load_file_contents_with_exception(self):
        config = FileStorageConfiguration()
        engine = FileStorageEngine(config)
        engine.initialise()
        store = FileTriggersStore(engine)

        trigger_config = TriggerConfiguration()
        trigger_config._manager = TriggerConfiguration.LOCAL_MANAGER
        mgr = TriggerManager.load_trigger_manager(trigger_config)

        self.assertFalse(store._load_file_contents(os.path.dirname(__file__) + os.sep + "data" + os.sep + "triggers" + os.sep + "triggers.txt", mgr))
Beispiel #6
0
    def test_trigger_exception(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)

        mgr.add_trigger("SYSTEM_STARTUP", "programy.triggers.excepter.ExceptionTrigger")

        triggered = mgr.trigger("SYSTEM_STARTUP")
        self.assertTrue(triggered)
Beispiel #7
0
    def test_process_line(self):
        config = FileStorageConfiguration()
        engine = FileStorageEngine(config)
        engine.initialise()
        store = FileTriggersStore(engine)

        trigger_config = TriggerConfiguration()
        trigger_config._manager = TriggerConfiguration.LOCAL_MANAGER
        mgr = TriggerManager.load_trigger_manager(trigger_config)

        self.assertFalse(store._process_line("", mgr))
        self.assertFalse(store._process_line("TRIGGER1", mgr))
        self.assertFalse(store._process_line("#", mgr))
        self.assertFalse(store._process_line("#TRIGGER1:programy.triggers.null.NullTrigger", mgr))
Beispiel #8
0
    def test_add_triggers(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)

        mgr.add_triggers({
            "SYSTEM_STARTUP": "programytest.triggers.trigger1.Trigger1",
            "SYSTEM_SHUTDOWN": "programytest.triggers.trigger1.Trigger1",
            "CONVERSATION_START": "programytest.triggers.trigger1.Trigger1"
        })

        self.assertTrue("SYSTEM_STARTUP" in mgr.triggers)
        self.assertTrue("SYSTEM_SHUTDOWN" in mgr.triggers)
        self.assertTrue("CONVERSATION_START" in mgr.triggers)
Beispiel #9
0
    def test_load_triggers(self):
        config = FileStorageConfiguration()
        config._triggers_storage = FileStoreConfiguration(file=os.path.dirname(__file__) + os.sep + "data" + os.sep + "triggers" + os.sep + "triggers.txt", fileformat="text", encoding="utf-8", delete_on_start=False)
        engine = FileStorageEngine(config)
        engine.initialise()
        store = FileTriggersStore(engine)

        trigger_config = TriggerConfiguration()
        trigger_config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(trigger_config)
        store.load(mgr)

        self.assertTrue(mgr.has_trigger_event("TRIGGER1"))
        self.assertTrue(mgr.has_trigger_event("TRIGGER2"))
        self.assertTrue(mgr.has_trigger_event("TRIGGER3"))
        self.assertFalse(mgr.has_trigger_event("TRIGGER4"))
Beispiel #10
0
    def test_trigger_triggers(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)

        trigger_file = os.path.dirname(__file__) + os.sep + "triggers.txt"

        config = FileStorageConfiguration()
        config._triggers_storage = FileStoreConfiguration(
            file=trigger_file,
            format="text",
            encoding="utf-8",
            delete_on_start=False)
        engine = FileStorageEngine(config)
        engine.initialise()

        storage_factory = StorageFactory()

        storage_factory._storage_engines[StorageFactory.TRIGGERS] = engine
        storage_factory._store_to_engine_map[StorageFactory.TRIGGERS] = engine

        mgr.load_triggers(storage_factory)

        client = TestClient()
        client_context = client.create_client_context("testid")

        triggered = mgr.trigger("SYSTEM_STARTUP")
        self.assertTrue(triggered)

        triggered = mgr.trigger("SYSTEM_STARTUP", additional={"key": "value"})
        self.assertTrue(triggered)

        triggered = mgr.trigger("CONVERSATION_START", client_context)
        self.assertTrue(triggered)

        triggered = mgr.trigger("OTHER_EVENT")
        self.assertFalse(triggered)

        triggered = mgr.trigger("OTHER_EVENT", client_context)
        self.assertFalse(triggered)

        triggered = mgr.trigger("OTHER_EVENT",
                                client_context,
                                additional={"key": "value"})
        self.assertFalse(triggered)
Beispiel #11
0
    def test_load_triggers_bad_triggers(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)

        trigger_file = os.path.dirname(__file__)  + os.sep + "bad_triggers.txt"
        self.assertTrue(os.path.exists(trigger_file))

        config = FileStorageConfiguration()
        config._triggers_storage = FileStoreConfiguration(file=trigger_file, fileformat="text", encoding="utf-8", delete_on_start=False)
        engine = FileStorageEngine(config)
        engine.initialise()

        storage_factory = StorageFactory()

        storage_factory._storage_engines[StorageFactory.TRIGGERS] = engine
        storage_factory._store_to_engine_map[StorageFactory.TRIGGERS] = engine

        mgr.load_triggers(storage_factory)
Beispiel #12
0
    def test_load_triggers_no_engine(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.LOCAL_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)

        trigger_file = os.path.dirname(__file__)  + os.sep + "triggers.txt"
        self.assertTrue(os.path.exists(trigger_file))

        config = FileStorageConfiguration()
        config._triggers_storage = FileStoreConfiguration(file=trigger_file, fileformat="text", encoding="utf-8", delete_on_start=False)
        engine = FileStorageEngine(config)
        engine.initialise()

        storage_factory = StorageFactory()

        mgr.load_triggers(storage_factory)

        self.assertFalse("SYSTEM_STARTUP" in mgr.triggers)
        self.assertFalse("SYSTEM_SHUTDOWN" in mgr.triggers)
        self.assertFalse("CONVERSATION_START" in mgr.triggers)
Beispiel #13
0
 def load_trigger_manager(self):
     if self._configuration.client_configuration.triggers is not None:
         YLogger.debug(None, "Loading Trigger Manager")
         self._trigger_mgr = TriggerManager.load_trigger_manager(
             self._configuration.client_configuration.triggers)
Beispiel #14
0
 def __init__(self, config: TriggerConfiguration):
     TriggerManager.__init__(self, config)
Beispiel #15
0
    def test_init(self):

        mgr = TriggerManager(TriggerConfiguration())
        self.assertIsNotNone(mgr)
Beispiel #16
0
    def test_load_trigger_manager_no_config(self):
        config = TriggerConfiguration()
        config._manager = None

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNone(mgr)
Beispiel #17
0
    def test_load_trigger_manager_bad_manager(self):
        config = TriggerConfiguration()
        config._manager = "some.class.or.other"

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNone(mgr)
Beispiel #18
0
    def test_create(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.REST_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)