From 713f0d13353ad339d0152ef144d486cd5e397a50 Mon Sep 17 00:00:00 2001 From: Juan Madurga Date: Tue, 26 Jan 2016 23:43:16 +0100 Subject: [PATCH 1/2] add tests for replymarkup objects --- tests/test_force_replay.py | 82 ++++++++++++++++++++++++++ tests/test_reply_keyboard_hide.py | 82 ++++++++++++++++++++++++++ tests/test_reply_keyboard_markup.py | 90 +++++++++++++++++++++++++++++ 3 files changed, 254 insertions(+) create mode 100644 tests/test_force_replay.py create mode 100644 tests/test_reply_keyboard_hide.py create mode 100644 tests/test_reply_keyboard_markup.py diff --git a/tests/test_force_replay.py b/tests/test_force_replay.py new file mode 100644 index 000000000..258956367 --- /dev/null +++ b/tests/test_force_replay.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# A library that provides a Python interface to the Telegram Bot API +# Copyright (C) 2015-2016 +# Leandro Toledo de Souza +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see [http://www.gnu.org/licenses/]. + +"""This module contains a object that represents Tests for Telegram ForceReply""" + +import unittest +import sys +sys.path.append('.') + +import telegram +from tests.base import BaseTest + + +class ForceReplyTest(BaseTest, unittest.TestCase): + """This object represents Tests for Telegram ForceReply.""" + + def setUp(self): + self.force_reply = True + self.selective = True + + self.json_dict = { + 'force_reply': self.force_reply, + 'selective': self.selective, + + } + + def test_send_message_with_force_reply(self): + """Test telegram.Bot sendMessage method with ForceReply""" + print('Testing bot.sendMessage - with ForceReply') + + message = self._bot.sendMessage(self._chat_id, + 'Моё судно на воздушной подушке полно угрей', + reply_markup=telegram.ForceReply.de_json(self.json_dict)) + + self.assertTrue(self.is_json(message.to_json())) + self.assertEqual(message.text, u'Моё судно на воздушной подушке полно угрей') + + def test_force_reply_de_json(self): + """Test ForceReply.de_json() method""" + print('Testing ForceReply.de_json()') + + force_reply = telegram.ForceReply.de_json(self.json_dict) + + self.assertEqual(force_reply.force_reply, self.force_reply) + self.assertEqual(force_reply.selective, self.selective) + + def test_force_reply_to_json(self): + """Test ForceReply.to_json() method""" + print('Testing ForceReply.to_json()') + + force_reply = telegram.ForceReply.de_json(self.json_dict) + + self.assertTrue(self.is_json(force_reply.to_json())) + + def test_force_reply_to_dict(self): + """Test ForceReply.to_dict() method""" + print('Testing ForceReply.to_dict()') + + force_reply = telegram.ForceReply.de_json(self.json_dict) + + self.assertEqual(force_reply['force_reply'], self.force_reply) + self.assertEqual(force_reply['selective'], self.selective) + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_reply_keyboard_hide.py b/tests/test_reply_keyboard_hide.py new file mode 100644 index 000000000..f73f094a1 --- /dev/null +++ b/tests/test_reply_keyboard_hide.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# A library that provides a Python interface to the Telegram Bot API +# Copyright (C) 2015-2016 +# Leandro Toledo de Souza +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see [http://www.gnu.org/licenses/]. + +"""This module contains a object that represents Tests for Telegram ReplyKeyboardHide""" + +import unittest +import sys +sys.path.append('.') + +import telegram +from tests.base import BaseTest + + +class ReplyKeyboardHideTest(BaseTest, unittest.TestCase): + """This object represents Tests for Telegram ReplyKeyboardHide.""" + + def setUp(self): + self.hide_keyboard = True + self.selective = True + + self.json_dict = { + 'hide_keyboard': self.hide_keyboard, + 'selective': self.selective, + + } + + def test_send_message_with_reply_keyboard_hide(self): + """Test telegram.Bot sendMessage method with ReplyKeyboardHide""" + print('Testing bot.sendMessage - with ReplyKeyboardHide') + + message = self._bot.sendMessage(self._chat_id, + 'Моё судно на воздушной подушке полно угрей', + reply_markup=telegram.ReplyKeyboardHide.de_json(self.json_dict)) + + self.assertTrue(self.is_json(message.to_json())) + self.assertEqual(message.text, u'Моё судно на воздушной подушке полно угрей') + + def test_reply_keyboard_hide_de_json(self): + """Test ReplyKeboardHide.de_json() method""" + print('Testing ReplyKeyboardHide.de_json()') + + reply_keyboard_hide = telegram.ReplyKeyboardHide.de_json(self.json_dict) + + self.assertEqual(reply_keyboard_hide.hide_keyboard, self.hide_keyboard) + self.assertEqual(reply_keyboard_hide.selective, self.selective) + + def test_reply_keyboard_hide_to_json(self): + """Test ReplyKeyboardHide.to_json() method""" + print('Testing ReplyKeyboardHide.to_json()') + + reply_keyboard_hide = telegram.ReplyKeyboardHide.de_json(self.json_dict) + + self.assertTrue(self.is_json(reply_keyboard_hide.to_json())) + + def test_reply_keyboard_hide_to_dict(self): + """Test ReplyKeyboardHide.to_dict() method""" + print('Testing ReplyKeyboardHide.to_dict()') + + reply_keyboard_hide = telegram.ReplyKeyboardHide.de_json(self.json_dict) + + self.assertEqual(reply_keyboard_hide['hide_keyboard'], self.hide_keyboard) + self.assertEqual(reply_keyboard_hide['selective'], self.selective) + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_reply_keyboard_markup.py b/tests/test_reply_keyboard_markup.py new file mode 100644 index 000000000..2fa8d5575 --- /dev/null +++ b/tests/test_reply_keyboard_markup.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# A library that provides a Python interface to the Telegram Bot API +# Copyright (C) 2015-2016 +# Leandro Toledo de Souza +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see [http://www.gnu.org/licenses/]. + +"""This module contains a object that represents Tests for Telegram ReplyKeyboardMarkup""" + +import unittest +import sys +sys.path.append('.') + +import telegram +from tests.base import BaseTest + + +class ReplyKeyboardMarkupTest(BaseTest, unittest.TestCase): + """This object represents Tests for Telegram ReplyKeyboardMarkup.""" + + def setUp(self): + self.keyboard = [['button1', 'button2']] + self.resize_keyboard = True + self.one_time_keyboard = True + self.selective = True + + self.json_dict = { + 'keyboard': self.keyboard, + 'resize_keyboard': self.resize_keyboard, + 'one_time_keyboard': self.one_time_keyboard, + 'selective': self.selective, + + } + + def test_send_message_with_reply_keyboard_markup(self): + """Test telegram.Bot sendMessage method with ReplyKeyboardMarkup""" + print('Testing bot.sendMessage - with ReplyKeyboardMarkup') + + message = self._bot.sendMessage(self._chat_id, + 'Моё судно на воздушной подушке полно угрей', + reply_markup=telegram.ReplyKeyboardMarkup.de_json(self.json_dict)) + + self.assertTrue(self.is_json(message.to_json())) + self.assertEqual(message.text, u'Моё судно на воздушной подушке полно угрей') + + def test_reply_keyboard_markup_de_json(self): + """Test ReplyKeboardMarkup.de_json() method""" + print('Testing ReplyKeyboardMarkup.de_json()') + + reply_keyboard_markup = telegram.ReplyKeyboardMarkup.de_json(self.json_dict) + + self.assertEqual(reply_keyboard_markup.keyboard, self.keyboard) + self.assertEqual(reply_keyboard_markup.resize_keyboard, self.resize_keyboard) + self.assertEqual(reply_keyboard_markup.one_time_keyboard, self.one_time_keyboard) + self.assertEqual(reply_keyboard_markup.selective, self.selective) + + def test_reply_keyboard_markup_to_json(self): + """Test ReplyKeyboardMarkup.to_json() method""" + print('Testing ReplyKeyboardMarkup.to_json()') + + reply_keyboard_markup = telegram.ReplyKeyboardMarkup.de_json(self.json_dict) + + self.assertTrue(self.is_json(reply_keyboard_markup.to_json())) + + def test_reply_keyboard_markup_to_dict(self): + """Test ReplyKeyboardMarkup.to_dict() method""" + print('Testing ReplyKeyboardMarkup.to_dict()') + + reply_keyboard_markup = telegram.ReplyKeyboardMarkup.de_json(self.json_dict) + + self.assertEqual(reply_keyboard_markup['keyboard'], self.keyboard) + self.assertEqual(reply_keyboard_markup['resize_keyboard'], self.resize_keyboard) + self.assertEqual(reply_keyboard_markup['one_time_keyboard'], self.one_time_keyboard) + self.assertEqual(reply_keyboard_markup['selective'], self.selective) + +if __name__ == '__main__': + unittest.main() From 702544f7091c46e6f2e37dcaa00522b5a28be220 Mon Sep 17 00:00:00 2001 From: Juan Madurga Date: Tue, 26 Jan 2016 23:58:07 +0100 Subject: [PATCH 2/2] fix pep8 extra lines --- tests/test_force_replay.py | 1 - tests/test_reply_keyboard_hide.py | 1 - tests/test_reply_keyboard_markup.py | 1 - 3 files changed, 3 deletions(-) diff --git a/tests/test_force_replay.py b/tests/test_force_replay.py index 258956367..e0d904f99 100644 --- a/tests/test_force_replay.py +++ b/tests/test_force_replay.py @@ -38,7 +38,6 @@ class ForceReplyTest(BaseTest, unittest.TestCase): self.json_dict = { 'force_reply': self.force_reply, 'selective': self.selective, - } def test_send_message_with_force_reply(self): diff --git a/tests/test_reply_keyboard_hide.py b/tests/test_reply_keyboard_hide.py index f73f094a1..4ffca8840 100644 --- a/tests/test_reply_keyboard_hide.py +++ b/tests/test_reply_keyboard_hide.py @@ -38,7 +38,6 @@ class ReplyKeyboardHideTest(BaseTest, unittest.TestCase): self.json_dict = { 'hide_keyboard': self.hide_keyboard, 'selective': self.selective, - } def test_send_message_with_reply_keyboard_hide(self): diff --git a/tests/test_reply_keyboard_markup.py b/tests/test_reply_keyboard_markup.py index 2fa8d5575..90b83c530 100644 --- a/tests/test_reply_keyboard_markup.py +++ b/tests/test_reply_keyboard_markup.py @@ -42,7 +42,6 @@ class ReplyKeyboardMarkupTest(BaseTest, unittest.TestCase): 'resize_keyboard': self.resize_keyboard, 'one_time_keyboard': self.one_time_keyboard, 'selective': self.selective, - } def test_send_message_with_reply_keyboard_markup(self):