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))
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)
def test_init_actual(self): arguments = MockArgumentParser() client = MockEventBotClient("testevents", arguments) self.assertIsNotNone(client) with self.assertRaises(NotImplementedError): client.wait_and_answer()
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)
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)
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))
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)
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)
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)
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)
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)
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)
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())
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)
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))
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)
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)
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)
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)
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))
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())
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)
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)
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)
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))
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)
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)
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))
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))
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))