Ejemplo n.º 1
0
    def test_trigger_triggers_status_code_500(self):
        config = TriggerConfiguration()

        mgr = MockRestTriggerManager(config, status_code=500)

        triggered = mgr.trigger("SYSTEM_STARTUP", client_context=None)
        self.assertFalse(triggered)
Ejemplo n.º 2
0
    def test_trigger_triggers_exception(self):
        config = TriggerConfiguration()

        mgr = MockRestTriggerManager(config, doexcept=True)

        triggered = mgr.trigger("SYSTEM_STARTUP", client_context=None)
        self.assertFalse(triggered)
Ejemplo n.º 3
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)
Ejemplo n.º 4
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))
Ejemplo n.º 5
0
    def test_to_yaml_with_defaults(self):
        triggers_config = TriggerConfiguration()
        triggers_config._manager = TriggerConfiguration.LOCAL_MANAGER

        data = {}
        triggers_config.to_yaml(data, defaults=True)
        self.assertEquals(
            {'manager': 'programy.triggers.local.LocalTriggerManager'}, data)
Ejemplo n.º 6
0
    def test_to_yaml_no_defaults(self):
        triggers_config = TriggerConfiguration()
        triggers_config._manager = "programy.triggers.local.LocalTriggerManager2"

        data = {}
        triggers_config.to_yaml(data, defaults=False)
        self.assertEquals(
            {'manager': 'programy.triggers.local.LocalTriggerManager2'}, data)
Ejemplo n.º 7
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)
Ejemplo n.º 8
0
    def test_trigger_with_additionals_method_get(self):
        config = TriggerConfiguration()
        config._additionals['url'] = "http://some.service.com"
        config._additionals['method'] = "GET"

        mgr = MockRestTriggerManager(config)

        result = mgr.trigger("SYSTEM_STARTUP")
        self.assertFalse(result)
Ejemplo n.º 9
0
    def assert_load(self, store):
        store.empty()

        store.upload_from_file(os.path.dirname(__file__) + os.sep + "data" + os.sep + "triggers" + os.sep + "triggers.txt")

        handler = LocalTriggerManager(TriggerConfiguration())
        store.load(handler)

        self.assertEqual(3, len(handler.triggers))
        self.assertTrue(handler.triggers.get("CONVERSATION_START"))
Ejemplo n.º 10
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)
Ejemplo n.º 11
0
 def __init__(self, name):
     BaseContainerConfigurationData.__init__(self, name)
     self._description = 'ProgramY AIML2.0 Client'
     self._bot_configs = []
     self._bot_configs.append(BotConfiguration("bot"))
     self._bot_selector = None
     self._renderer = None
     self._scheduler = SchedulerConfiguration()
     self._storage = StorageConfiguration()
     self._email = EmailConfiguration()
     self._triggers = TriggerConfiguration()
Ejemplo n.º 12
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)
Ejemplo n.º 13
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))
Ejemplo n.º 14
0
    def test_trigger_with_additionals_no_token(self):
        config = TriggerConfiguration()
        config._additionals['url'] = "http://some.service.com"
        config._additionals['method'] = "POST"

        mgr = MockRestTriggerManager(config)

        mgr.trigger("SYSTEM_STARTUP")

        self.assertEquals("http://some.service.com", mgr._api_url_base)
        self.assertEquals({'Content-Type': 'application/json'}, mgr._headers)
        self.assertEquals({'event': 'SYSTEM_STARTUP'}, mgr._payload)
Ejemplo n.º 15
0
    def __init__(self, name):
        BaseContainerConfigurationData.__init__(self, name)
        self._description = 'ProgramY AIML2.0 Client'
        self._renderer = self._get_renderer_class()
        self._scheduler = SchedulerConfiguration()
        self._storage = StorageConfiguration()
        self._email = EmailConfiguration()
        self._triggers = TriggerConfiguration()
        self._responder = PingResponderConfig()

        self._bot_selector = self._get_bot_selector_class()
        bot_config = BotConfiguration('bot')
        self._bot_configs = [bot_config]
Ejemplo n.º 16
0
    def test_with_no_data(self):
        yaml = YamlConfigurationFile()
        self.assertIsNotNone(yaml)
        yaml.load_from_text("""
        bot:
        """, ConsoleConfiguration(), ".")

        console_config = yaml.get_section("console")

        triggers_config = TriggerConfiguration()
        triggers_config.load_config_section(yaml, console_config, ".")

        self.assertEquals("programy.triggers.local.LocalTriggerManager",
                          triggers_config.manager)
Ejemplo n.º 17
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))
Ejemplo n.º 18
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)
Ejemplo n.º 19
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)
Ejemplo n.º 20
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"))
Ejemplo n.º 21
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)
Ejemplo n.º 22
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)
Ejemplo n.º 23
0
    def test_with_additional_data(self):
        yaml = YamlConfigurationFile()
        self.assertIsNotNone(yaml)
        yaml.load_from_text(
            """
        console:
            triggers:
                manager: programy.triggers.rest.RestTriggerManager
                url: http://localhost:8989/api/v1.0/trigger
                method: POST
                token: 123BC4F3D
        """, ConsoleConfiguration(), ".")

        console_config = yaml.get_section("console")

        triggers_config = TriggerConfiguration()
        triggers_config.load_config_section(yaml, console_config, ".")

        self.assertEquals("programy.triggers.rest.RestTriggerManager",
                          triggers_config.manager)
        self.assertEquals(triggers_config.value("url"),
                          "http://localhost:8989/api/v1.0/trigger")
        self.assertEquals(triggers_config.value("method"), "POST")
        self.assertEquals(triggers_config.value("token"), "123BC4F3D")
Ejemplo n.º 24
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)
Ejemplo n.º 25
0
 def test_init(self):
     mgr = MockTriggerManager(TriggerConfiguration())
     self.assertIsNotNone(mgr)
Ejemplo n.º 26
0
    def test_create(self):
        config = TriggerConfiguration()
        config._manager = TriggerConfiguration.REST_MANAGER

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNotNone(mgr)
Ejemplo n.º 27
0
    def test_load_trigger_manager_no_config(self):
        config = TriggerConfiguration()
        config._manager = None

        mgr = TriggerManager.load_trigger_manager(config)
        self.assertIsNone(mgr)
Ejemplo n.º 28
0
    def test_defaults(self):
        triggers_config = TriggerConfiguration()
        data = {}
        triggers_config.to_yaml(data, True)

        TriggersConfigurationTests.assert_defaults(self, data)