Improve unitests coverage

This commit is contained in:
Noam Meltzer 2016-10-13 22:52:53 +03:00
parent 5b8efe0c14
commit 53a574bbbb
4 changed files with 48 additions and 16 deletions

View file

@ -51,16 +51,14 @@ class Bot(TelegramObject):
def __init__(self, token, base_url=None, base_file_url=None, request=None):
self.token = self._validate_token(token)
if not base_url:
self.base_url = 'https://api.telegram.org/bot{0}'.format(self.token)
else:
self.base_url = base_url + self.token
if base_url is None:
base_url = 'https://api.telegram.org/bot'
if not base_file_url:
self.base_file_url = 'https://api.telegram.org/file/bot{0}'.format(self.token)
else:
self.base_file_url = base_file_url + self.token
if base_file_url is None:
base_file_url = 'https://api.telegram.org/file/bot'
self.base_url = str(base_url) + str(self.token)
self.base_file_url = str(base_file_url) + str(self.token)
self.bot = None
self._request = request or Request()
self.logger = logging.getLogger(__name__)
@ -782,11 +780,6 @@ class Bot(TelegramObject):
data = {'chat_id': chat_id, 'game_short_name': game_short_name}
if parse_mode is not None:
data['parse_mode'] = parse_mode
if disable_web_page_preview is not None:
data['disable_web_page_preview'] = disable_web_page_preview
return url, data
@log

View file

@ -67,6 +67,17 @@ class BotTest(BaseTest, unittest.TestCase):
self.assertEqual(message.text, u'Моё судно на воздушной подушке полно угрей')
self.assertTrue(isinstance(message.date, datetime))
@flaky(3, 1)
@timeout(10)
def test_sendMessage_no_web_page_preview(self):
message = self._bot.sendMessage(
chat_id=self._chat_id,
text='Моё судно на воздушной подушке полно угрей',
disable_web_page_preview=True)
self.assertTrue(self.is_json(message.to_json()))
self.assertEqual(message.text, u'Моё судно на воздушной подушке полно угрей')
@flaky(3, 1)
@timeout(10)
def testGetUpdates(self):
@ -183,6 +194,13 @@ class BotTest(BaseTest, unittest.TestCase):
self.assertTrue(self.is_json(upf.to_json()))
self.assertEqual(upf.photos[0][0].file_size, 12421)
@flaky(3, 1)
@timeout(10)
def test_get_one_user_profile_photo(self):
upf = self._bot.getUserProfilePhotos(user_id=self._chat_id, offset=0)
self.assertTrue(self.is_json(upf.to_json()))
self.assertEqual(upf.photos[0][0].file_size, 12421)
def _test_invalid_token(self, token):
self.assertRaisesRegexp(telegram.error.InvalidToken, 'Invalid token', telegram.Bot, token)
@ -304,6 +322,27 @@ class BotTest(BaseTest, unittest.TestCase):
self.assertEqual(user.username, 'PythonTelegramBot')
self.assertEqual(user.name, '@PythonTelegramBot')
@flaky(3, 1)
@timeout(10)
def test_info(self):
# tests the Bot.info decorator and associated funcs
self.assertEqual(self._bot.id, 133505823)
self.assertEqual(self._bot.first_name, 'PythonTelegramBot')
self.assertEqual(self._bot.last_name, '')
self.assertEqual(self._bot.username, 'PythonTelegramBot')
self.assertEqual(self._bot.name, '@PythonTelegramBot')
@flaky(3, 1)
@timeout(10)
def test_send_contact(self):
phone = '+3-54-5445445'
name = 'name'
last = 'last'
message = self._bot.send_contact(self._chat_id, phone, name, last)
self.assertEqual(phone.replace('-', ''), message.contact.phone_number)
self.assertEqual(name, message.contact.first_name)
self.assertEqual(last, message.contact.last_name)
if __name__ == '__main__':
unittest.main()

View file

@ -58,7 +58,7 @@ class DocumentTest(BaseTest, unittest.TestCase):
@flaky(3, 1)
@timeout(10)
def test_send_document_png_file(self):
message = self._bot.sendDocument(self._chat_id, self.document_file)
message = self._bot.sendDocument(self._chat_id, self.document_file, caption='caption text')
document = message.document

View file

@ -45,7 +45,7 @@ class VenueTest(BaseTest, unittest.TestCase):
'foursquare_id': self.foursquare_id
}
def test_sticker_de_json(self):
def test_venue_de_json(self):
sticker = telegram.Venue.de_json(self.json_dict, self._bot)
self.assertTrue(isinstance(sticker.location, telegram.Location))
@ -53,7 +53,7 @@ class VenueTest(BaseTest, unittest.TestCase):
self.assertEqual(sticker.address, self._address)
self.assertEqual(sticker.foursquare_id, self.foursquare_id)
def test_sticker_to_json(self):
def test_venue_to_json(self):
sticker = telegram.Venue.de_json(self.json_dict, self._bot)
self.assertTrue(self.is_json(sticker.to_json()))