Ejemplo n.º 1
0
    def test_get_question_exists(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock
        request.args = {'question': 'Hello'}

        key = client.get_question(request)
        self.assertIsNotNone(key)
        self.assertEqual('Hello', key)
Ejemplo n.º 2
0
    def test_process_debug_request_no_conversation(self):
        arguments = MockArgumentParser()
        client = SanicYadlanClient("yadlan", arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock()
        request.body = b'{"userId": "1234567890", "variables": [{"type": "name", "key": "testname", "value": "value1"}]}'

        debugInfo, status = client.process_debug_request(request)
        self.assertEqual(0, len(debugInfo))
        self.assertEqual(200, status)
Ejemplo n.º 3
0
    def test_api_keys(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)
        client.initialise()

        client.api_keys.api_keys = ['KEY1', 'KEY2']

        self.assertTrue(client.api_keys.is_apikey_valid('KEY1'))
        self.assertTrue(client.api_keys.is_apikey_valid('KEY2'))
        self.assertFalse(client.api_keys.is_apikey_valid('KEY3'))
Ejemplo n.º 4
0
    def test_get_api_key_not_exists(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)
        client.initialise()

        request = unittest.mock.Mock
        request.args = {}

        key = client.api_keys.get_api_key(request)
        self.assertIsNone(key)
Ejemplo n.º 5
0
    def test_parse_direct_mention(self):
        arguments = MockArgumentParser()
        client = MockSlackBotClient(arguments)

        text = "<@U024BE7LH> Hello"

        userid, message = client.parse_direct_mention(text)
        self.assertIsNotNone(userid)
        self.assertEquals("U024BE7LH", userid)
        self.assertIsNotNone(message)
        self.assertEquals("Hello", message)
Ejemplo n.º 6
0
    def test_get_userid_missing(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)
        client.initialise()

        request = unittest.mock.Mock()
        request.cookies = unittest.mock.Mock()
        request.cookies.get.return_value = None

        self.assertIsNotNone(client.get_userid(request))
Ejemplo n.º 7
0
    def test_init(self):
        arguments = MockArgumentParser()
        client = RestBotClient("testrest", arguments)
        self.assertIsNotNone(client)
        self.assertIsNotNone(client.get_client_configuration())
        self.assertIsInstance(client.get_client_configuration(),
                              RestConfiguration)
        self.assertEqual([], client.api_keys)

        request = unittest.mock.Mock()
        response, code = client.process_request(request)
Ejemplo n.º 8
0
    def test_extract_payload(self):
        arguments = MockArgumentParser()
        client = MockSocketBotClient(MockSocket(), arguments)

        receive_payload = {"userid": "user12345", "question": "Test Question"}

        question = client.extract_question(receive_payload)
        self.assertEqual("Test Question", question)

        userid = client.extract_userid(receive_payload)
        self.assertEqual("user12345", userid)
Ejemplo n.º 9
0
 def test_verify_api_key_usage_active(self):
     arguments = MockArgumentParser()
     client = FlaskYadlanClient("yadlan", arguments)
     self.assertIsNotNone(client)
     client.configuration.client_configuration._use_api_keys = True
     client.configuration.client_configuration._api_key_file = os.path.dirname(__file__) + os.sep + ".." + os.sep + ".." + os.sep + "api_keys.txt"
     client.load_api_keys()
     request = unittest.mock.Mock()
     request.args = {}
     request.args['apikey'] = '11111111'
     self.assertEqual(({'error': 'Unauthorized access'}, 401), client.verify_api_key_usage(request))
Ejemplo n.º 10
0
    def test_verify_api_key_usage_active_invalid_apikey(self):
        arguments = MockArgumentParser()
        client = MockFlaskYadlanClient(arguments)
        client.configuration.client_configuration._use_api_keys = True

        request = unittest.mock.Mock()
        request.args = {}
        request.args['apikey'] = 'invalid'

        response = client.verify_api_key_usage(request)
        self.assertIsNotNone(response)
Ejemplo n.º 11
0
    def test_twitter_get_username(self):
        arguments = MockArgumentParser()
        client = TwitterBotClient(arguments)
        self.assertIsNotNone(client)

        bot = MockBot()
        bot.license_keys = MockLicenseKeys({"TWITTER_USERNAME": "******"})

        client._get_username(bot)
        self.assertEquals("Username", client._username)
        self.assertEquals(8, client._username_len)
Ejemplo n.º 12
0
 def test_xmpp_bot_client_init(self):
     arguments = MockArgumentParser()
     client = MockXmppBotClient(arguments)
     self.assertIsNotNone(client)
     self.assertIsNotNone(client.get_client_configuration())
     self.assertIsInstance(client.get_client_configuration(), XmppConfiguration)
     self.assertEquals('ProgramY AIML2.0 XMPP Client', client.get_description())
     self.assertEquals('XMPPUSERNAME', client._username)
     self.assertEquals('XMPPPASSWORD', client._password)
     self.assertEqual("Server", client._server)
     self.assertEqual(8080, client._port)
Ejemplo n.º 13
0
    def test_return_hub_challenge(self):
        arguments = MockArgumentParser()
        client = MockFacebookBotClient(arguments)

        request = unittest.mock.Mock()
        request.args = unittest.mock.Mock()
        request.args.get.return_value = "ZZZZZZ"

        client._verify_token = "ZZZZZZ"

        self.assertEqual("ZZZZZZ", client.return_hub_challenge(request))
Ejemplo n.º 14
0
        def test_format_success_response(self):
            arguments = MockArgumentParser()
            client = SanicRestBotClient(arguments)
            self.assertIsNotNone(client)

            response = client.format_success_response("1234567890", "Hello",
                                                      "Hi")
            self.assertIsNotNone(response)
            self.assertEquals("1234567890", response['sessionid'])
            self.assertEquals("Hello", response['question'])
            self.assertEquals("Hi", response['answer'])
Ejemplo n.º 15
0
    def test_process_debug_request_invalid_variables_type(self):
        arguments = MockArgumentParser()
        client = SanicYadlanClient("yadlan", arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock()
        request.body = b'{"userId": "1234567890", "variables": [{"type": "var", "key": "testvar", "value": "value1"}]}'

        debugInfo, status = client.process_debug_request(request)
        self.assertEqual('Invalid variables list format', debugInfo['error'])
        self.assertEqual(400, status)
Ejemplo n.º 16
0
    def test_get_api_key_exists(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock
        request.args = {'api_key': 'KEY1'}

        key = client.get_api_key(request)
        self.assertIsNotNone(key)
        self.assertEqual('KEY1', key)
Ejemplo n.º 17
0
    def test_webchat_client_init(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)
        client.initialise()

        self.assertIsInstance(client.get_client_configuration(),
                              WebChatConfiguration)
        self.assertEqual('ProgramY AIML2.0 Client', client.get_description())

        self.assertFalse(client._render_callback())
        self.assertIsInstance(client.renderer, HtmlRenderer)
Ejemplo n.º 18
0
    def test_checkBotVersion(self):
        arguments = MockArgumentParser()
        client = MockFlaskYadlanClient(arguments)
        self.assertIsNotNone(client)

        self.assertEqual(False, client.checkBotVersion('v1.0'))

        bot = client._bot_factory.select_bot()
        bot.configuration._version = 'v1.0'

        self.assertEqual(True, client.checkBotVersion('v1.0'))
        self.assertEqual(False, client.checkBotVersion('v1 0'))
Ejemplo n.º 19
0
    def test_check_api_key_required_key_missing(self):
        arguments = MockArgumentParser()
        client = MockWebChatBotClient(arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock
        request.args = {}

        client.configuration.client_configuration._use_api_keys = True
        client.api_keys.api_keys = ['KEY1']

        self.assertFalse(client.api_keys.verify_api_key_usage(request))
Ejemplo n.º 20
0
    def test_get_userid_none_userid(self):
        arguments = MockArgumentParser()
        client = MockFlaskYadlanClient(arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock()

        request.data = b'{"userId": null}'
        self.assertEqual("None", client.get_userid(request))

        request.data = b'{"userId": ""}'
        self.assertEqual("None", client.get_userid(request))
Ejemplo n.º 21
0
    def test_process_request_no_question(self):
        arguments = MockArgumentParser()
        client = FlaskYadlanClient("yadlan", arguments)
        self.assertIsNotNone(client)

        request = unittest.mock.Mock()
        request.args = {}
        request.data = b'{"userId": "1234567890"}'

        response, status = client.process_request(request)
        self.assertIsNotNone(response)
        self.assertEqual(status, 400)
Ejemplo n.º 22
0
        def test_format_error_response(self):
            arguments = MockArgumentParser()
            client = SanicRestBotClient("sanic", arguments)
            self.assertIsNotNone(client)

            response = client.format_error_response("1234567890", "Hello",
                                                    "Something Bad")
            self.assertIsNotNone(response)
            self.assertEqual("1234567890", response['userid'])
            self.assertEqual("Hello", response['question'])
            self.assertEqual("", response['answer'])
            self.assertEqual("Something Bad", response['error'])
Ejemplo n.º 23
0
        def test_get_sessionid_no_sessionid(self):
            arguments = MockArgumentParser()
            client = MockSanicRestBotClient(arguments)
            self.assertIsNotNone(client)

            request = unittest.mock.Mock()
            request.raw_args = {}

            self.assertFalse(client.aborted)
            with self.assertRaises(Exception):
                self.assertEquals("1234567890", client.get_sessionid(request))
            self.assertTrue(client.aborted)
Ejemplo n.º 24
0
    def test_handle_message(self):
        arguments = MockArgumentParser()
        client = MockSlackBotClient(arguments)
        client._starterbot_id = "U024BE7LH"
        client.test_question = "Hi there"

        client.handle_message("Hello", "test", "U024BE7LH")

        self.assertIsNotNone(client.response_sent)
        self.assertEqual("Hi there", client.response_sent)
        self.assertIsNotNone(client.channel_sent)
        self.assertEqual("test", client.channel_sent)
Ejemplo n.º 25
0
        def test_get_question_none_question(self):
            arguments = MockArgumentParser()
            client = MockSanicRestBotClient(arguments)
            self.assertIsNotNone(client)

            request = unittest.mock.Mock()
            request.raw_args = {}

            self.assertFalse(client.aborted)
            with self.assertRaises(Exception):
                self.assertEqual("Hello", client.get_question(request))
            self.assertTrue(client.aborted)
Ejemplo n.º 26
0
    def test_twilio_client_init(self):
        arguments = MockArgumentParser()
        client = MockTwilioBotClient(arguments)
        self.assertIsNotNone(client)

        self.assertEqual("TWILIO_ACCOUNT_SID", client._account_sid)
        self.assertEqual("TWILIO_AUTH_TOKEN", client._auth_token)
        self.assertEqual("+447777777777", client._from_number)

        self.assertIsInstance(client.get_client_configuration(), TwilioConfiguration)

        self.assertIsInstance(client._twilio_client, Client)
Ejemplo n.º 27
0
    def test_slack_client_init(self):
        arguments = MockArgumentParser()
        client = MockSlackBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertEqual("SLACK_BOT_TOKEN", client._bot_token)
        self.assertEqual('ProgramY AIML2.0 Client', client.get_description())
        self.assertIsInstance(client.get_client_configuration(),
                              SlackConfiguration)
        self.assertIsInstance(client._slack_client, SlackClient)

        self.assertFalse(client._render_callback())
        self.assertIsInstance(client.renderer, TextRenderer)
Ejemplo n.º 28
0
    def test_poll_answer(self):
        telegram_bot = MockTelegramBot()
        arguments = MockArgumentParser()
        client = MockTelegramBotClient(arguments)
        self.assertIsNotNone(client)
        client.connect()

        self.assertFalse(client._updater._ran)

        client.poll_and_answer()

        self.assertTrue(client._updater._ran)
Ejemplo n.º 29
0
    def test_telegram_client_init(self):
        arguments = MockArgumentParser()
        client = MockTelegramBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertIsInstance(client.get_client_configuration(),
                              TelegramConfiguration)
        self.assertEqual(client.id, "telegram")
        self.assertEqual('ProgramY AIML2.0 Client', client.get_description())
        self.assertEqual("TELEGRAM_TOKEN", client._telegram_token)

        self.assertFalse(client._render_callback())
        self.assertIsInstance(client.renderer, TextRenderer)
Ejemplo n.º 30
0
    def test_get_question_from_text(self):
        arguments = MockArgumentParser()
        client = MockTwitterBotClient(arguments)
        self.assertIsNotNone(client)
        self.assertTrue(client.connect())

        client._username = "******"
        client._username_len = 9

        self.assertEqual("Hello", client._get_question_from_text("@keiffster Hello"))
        self.assertIsNone(client._get_question_from_text("keiffster Hello"))
        self.assertIsNone(client._get_question_from_text("Hello"))