Example #1
0
    def has_attachements(self):
        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        message = {}
        message['message'] = unittest.mock.Mock()
        message['message'].get.return_value = "Hello"

        self.assertEquals("Hello", client.get_message_text(message))
Example #2
0
    def test_message_ids_save_load(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client.configuration.client_configuration._storage = 'file'
        if os.name == 'posix':
            client.configuration.client_configuration._storage_location = "/tmp/twitter.txt"
        else:
            client.configuration.client_configuration._storage_location = "C:\Windows\Temp/twitter.txt"

        if os.path.exists(
                client.configuration.client_configuration.storage_location):
            os.remove(
                client.configuration.client_configuration.storage_location)
        self.assertFalse(
            os.path.exists(
                client.configuration.client_configuration.storage_location))

        client._store_last_message_ids(666, 667)

        self.assertTrue(
            os.path.exists(
                client.configuration.client_configuration.storage_location))

        ids = client._get_last_message_ids()
        self.assertEquals(ids[0], 666)
        self.assertEquals(ids[1], 667)
Example #3
0
    def test_init_actual(self):
        arguments = MockArgumentParser()
        client = MockEventBotClient("testevents", arguments)
        self.assertIsNotNone(client)

        with self.assertRaises(NotImplementedError):
            client.wait_and_answer()
Example #4
0
    def test_render_response(self):
        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        client.render_response(client.create_client_context("user1"), "hello")

        self.assertIsNotNone(client._facebook_bot.payload)
Example #5
0
 def test_get_question(self):
     arguments = MockArgumentParser()
     client = ConsoleBotClient(arguments)
     self.assertIsNotNone(client)
     context = client.create_client_context("console")
     question = client.get_question(context, input_func=mock_input_func)
     self.assertEquals("Hello", question)
Example #6
0
 def test_verify_api_key_usage_inactive(self):
     arguments = MockArgumentParser()
     client = FlaskRestBotClient("flask", arguments)
     self.assertIsNotNone(client)
     client.configuration.client_configuration._use_api_keys = False
     request = unittest.mock.Mock()
     self.assertEquals((None, None), client.verify_api_key_usage(request))
Example #7
0
 def test_process_response(self):
     arguments = MockArgumentParser()
     client = MockConsoleBotClient(arguments)
     self.assertIsNotNone(client)
     context = client.create_client_context("console")
     client.process_response(context, "Answer")
     self.assertEquals("Answer", client.response)
Example #8
0
    def test_get_userid_cookie_expirary_date(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)

        expirary = client.get_userid_cookie_expirary_date(10)
        self.assertIsNotNone(expirary)
Example #9
0
    def test_sub_classed_client(self):

        if os.name == 'posix':
            logging_file = os.path.dirname(__file__) + os.sep + "logging.yaml"
            config_file = os.path.dirname(__file__) + os.sep + "config.yaml"
        elif os.name == 'nt':
            logging_file = os.path.dirname(
                __file__) + os.sep + "logging.windows.yaml"
            config_file = os.path.dirname(
                __file__) + os.sep + "config.windows.yaml"
        else:
            raise Exception("Unknown os [%s]" % os.name)

        arguments = MockArgumentParser(bot_root=".",
                                       logging=logging_file,
                                       config=config_file,
                                       cformat="yaml",
                                       noloop=False)
        client = MockBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertIsNotNone(client.arguments)

        self.assertIsNotNone(client.arguments)
        self.assertEquals("ProgramR Test Client", client.get_description())

        client.run()
        client.log_response(None, None)
        client.log_unknown_response(None)
Example #10
0
    def test_create_viber_bot_no_token(self):
        arguments = MockArgumentParser()
        client = MockViberBotClient(arguments)
        self.assertIsNotNone(client)

        bot = client.create_viber_bot(None)
        self.assertIsNone(bot)
Example #11
0
    def test_handle_unknown_request(self):
        arguments = MockArgumentParser()
        client = MockViberBotClient(arguments, viber_client=MockViberApi(None))
        self.assertIsNotNone(client)

        request = unittest.mock.Mock()

        client.handle_unknown_request(request)
Example #12
0
 def test_process_question_answer_no_response(self):
     arguments = MockArgumentParser()
     client = MockConsoleBotClient(arguments)
     self.assertIsNotNone(client)
     client.question = None
     context = client.create_client_context("console")
     client.process_question_answer(context)
     self.assertEquals('', client.response)
Example #13
0
 def test_console_client_init(self):
     arguments = MockArgumentParser()
     client = ConsoleBotClient(arguments)
     self.assertIsNotNone(client)
     self.assertIsNotNone(client.arguments)
     self.assertEqual(client.id, "Console")
     self.assertEqual('ProgramR AIML2.0 Console Client',
                      client.get_description())
Example #14
0
 def test_wait_and_answer_invalid_response(self):
     arguments = MockArgumentParser()
     mock_socket = MockSocket()
     mock_socket._recv = 'This is rubbish'
     client = MockSocketBotClient(mock_socket, arguments)
     client.wait_and_answer()
     self.assertEquals('{"result": "ERROR", "message": "Expecting value"}',
                       mock_socket._send)
Example #15
0
    def test_hub_verify_token(self):
        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        request = unittest.mock.Mock()
        request.args =unittest.mock.Mock()
        request.args.get.return_value = "XXZZ"
        self.assertEquals("XXZZ", client.get_hub_verify_token(request))
Example #16
0
 def test_slack_client_init(self):
     arguments = MockArgumentParser()
     client = MockSlackBotClient(arguments)
     self.assertIsNotNone(client)
     self.assertEquals("SLACK_BOT_TOKEN", client._bot_token)
     self.assertEquals('programr AIML2.0 Slack Client', client.get_description())
     self.assertIsInstance(client.get_client_configuration(), SlackConfiguration)
     self.assertIsInstance(client._slack_client, SlackClient)
Example #17
0
 def test_unknown_with_client(self):
     arguments = MockArgumentParser()
     TelegramBotClient.TELEGRAM_CLIENT = MockTelegramBotClient(arguments)
     mock_bot = unittest.mock.Mock()
     update = unittest.mock.Mock()
     update.message = unittest.mock.Mock()
     update.message.chat_id = 1
     unknown(mock_bot, update)
Example #18
0
 def test_init(self):
     arguments = MockArgumentParser()
     client = MockSocketBotClient(MockSocket(), arguments)
     self.assertIsNotNone(client)
     self.assertEquals('ProgramR AIML2.0 TCP Socket Client',
                       client.get_description())
     self.assertIsInstance(client.get_client_configuration(),
                           SocketConfiguration)
Example #19
0
    def test_create_viber_bot_no_name(self):
        arguments = MockArgumentParser()
        client = MockViberBotClient(arguments)
        self.assertIsNotNone(client)

        client.configuration.client_configuration._name = None

        bot = client.create_viber_bot("TOKEN")
        self.assertIsNone(bot)
Example #20
0
        def test_get_api_key(self):
            arguments = MockArgumentParser()
            client = SanicRestBotClient("sanic", arguments)

            request = unittest.mock.Mock()
            request.raw_args = {}
            request.raw_args['apikey'] = '11111111'

            self.assertEquals('11111111', client.get_api_key(request))
Example #21
0
    def test_webchat_client_init(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)

        self.assertIsInstance(client.get_client_configuration(),
                              WebChatConfiguration)
        self.assertEquals('programr AIML2.0 Webchat Client',
                          client.get_description())
Example #22
0
 def test_process_question_answer_with_context(self):
     arguments = MockArgumentParser()
     client = MockConsoleBotClient(arguments)
     client._arguments.context = True
     self.assertIsNotNone(client)
     client.question = "Hello"
     context = client.create_client_context("console")
     client.process_question_answer(context)
     self.assertEquals("Hello", client.response)
Example #23
0
    def test_handle_unsubscribed_request(self):
        arguments = MockArgumentParser()
        client = MockViberBotClient(arguments, viber_client=MockViberApi(None))
        self.assertIsNotNone(client)

        request = ViberUnsubscribedRequest()
        request._user_id = "User123"

        client.handle_unsubscribed_request(request)
Example #24
0
    def test_handle_conversation_started_request(self):
        arguments = MockArgumentParser()
        client = MockViberBotClient(arguments, viber_client=MockViberApi(None))
        self.assertIsNotNone(client)

        request = ViberConversationStartedRequest()
        request._user = UserProfile(user_id="User123")

        client.handle_conversation_started_request(request)
Example #25
0
    def test_get_recipitent_id(self):
        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        message = {'message': {'sender': {'id': 'user1'}}}
        message['message'] = unittest.mock.Mock()
        message['message'].get.return_value = []

        self.assertTrue(client.has_attachements(message))
Example #26
0
    def test_get_statuses_excessive_number(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client._api._statuses = []

        statuses = client._get_statuses(666)
        self.assertIsNotNone(statuses)
Example #27
0
    def test_process_direct_messages(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client._api._mock_direct_messages = [MockMessage(31, 1, "Message1")]

        last_message_id = client._process_direct_messages(-1)
        self.assertEqual(31, last_message_id)
Example #28
0
    def test_process_direct_message_question(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client._process_direct_message_question("userid1", "Hello")

        self.assertEqual(1, len(client._api._messages_sent_to))
        self.assertTrue(bool("userid1" in client._api._messages_sent_to))
Example #29
0
    def test_get_direct_messages_previous(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client._api._mock_direct_messages = [MockMessage(31, 1, "Message1")]

        messages = client._get_direct_messages(30)
        self.assertEquals(1, len(messages))
Example #30
0
        def test_get_question(self):
            arguments = MockArgumentParser()
            client = SanicRestBotClient("sanic", arguments)
            self.assertIsNotNone(client)

            request = unittest.mock.Mock()
            request.raw_args = {}
            request.raw_args['question'] = 'Hello'

            self.assertEquals("Hello", client.get_question(request))