예제 #1
0
    def test_selection_multi_bot(self):
        config_file, logging_file = MockConfigFiles.get_config_files(self)
        arguments = MockConfigFiles.get_commandline_args(None, logging_file)
        client = MockBotClient(arguments)

        bot1 = Bot(BotConfiguration(), client)
        bot2 = Bot(BotConfiguration(), client)
        bot3 = Bot(BotConfiguration(), client)
        bots = {"bot1": bot1, "bot2": bot2, "bot3": bot3}

        config = ClientConfigurationData(name="test")
        selector = DefaultBotSelector(config, bots)

        selected = selector.select_bot()
        self.assertIsNotNone(selected)
        self.assertEquals(selected, bot1)

        selected = selector.select_bot()
        self.assertIsNotNone(selected)
        self.assertEquals(selected, bot2)

        selected = selector.select_bot()
        self.assertIsNotNone(selected)
        self.assertEquals(selected, bot3)

        selected = selector.select_bot()
        self.assertIsNotNone(selected)
        self.assertEquals(selected, bot1)
예제 #2
0
    def test_sub_classed_client_no_bot_root_no_config(self):

        config_file, logging_file = MockConfigFiles.get_config_files(self)

        arguments = MockConfigFiles.get_commandline_args(None, logging_file)

        client = MockBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertIsNotNone(client.arguments)
예제 #3
0
    def test_scheduler(self):

        config_file, logging_file = MockConfigFiles.get_config_files(self)

        arguments = MockConfigFiles.get_commandline_args(
            config_file, logging_file)

        client = MockBotClient(arguments)

        self.assertIsNotNone(client.scheduler)
예제 #4
0
    def test_sub_classed_client(self):

        config_file, logging_file = MockConfigFiles.get_config_files(self)

        arguments = MockConfigFiles.get_commandline_args(None, logging_file)

        client = MockBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertIsNotNone(client.arguments)

        self.assertIsNotNone(client.arguments)
        self.assertEqual("ProgramY Test Client", client.get_description())

        client.run()
        client.log_response(None, None)
        client.log_unknown_response(None)
예제 #5
0
    def test_empty_config_init(self):
        arguments = MockArgumentParser()
        client = MockBotClient(arguments)

        configuration = unittest.mock.Mock()

        configuration.configurations = []

        configuration.bot_selector = "programy.clients.client.DefaultBotSelector"

        factory = BotFactory(client, configuration)
        self.assertIsNotNone(factory)

        bot = factory.select_bot()
        self.assertIsNone(bot)
예제 #6
0
    def test_trigger_manager(self):

        config_file, logging_file = MockConfigFiles.get_config_files(self)

        arguments = MockConfigFiles.get_commandline_args(
            config_file, logging_file)

        client = MockBotClient(arguments)

        self.assertIsNotNone(client.trigger_manager)

        client.startup()
        client.shutdown()