From 281bd6729852f2213125cbecb1a2b475123045c6 Mon Sep 17 00:00:00 2001 From: Eldin Date: Wed, 21 Jun 2017 17:38:20 +0200 Subject: [PATCH] test_document done * Changed to new method of non-static file_id * removed obsolete tests. --- tests/test_document.py | 131 ++++++++++++++++++++++------------------- tests/test_photo.py | 10 +--- 2 files changed, 73 insertions(+), 68 deletions(-) diff --git a/tests/test_document.py b/tests/test_document.py index ff9afa4a5..479dcc0da 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -18,56 +18,72 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains an object that represents Tests for Telegram Document""" -import sys -import unittest import os +import unittest from flaky import flaky -sys.path.append('.') - import telegram from tests.base import BaseTest, timeout - +from tests.bots import get_bot class DocumentTest(BaseTest, unittest.TestCase): """This object represents Tests for Telegram Document.""" + @classmethod + def setUpClass(cls): + cls.caption = u'DocumentTest - Caption' + cls.document_file_url = 'https://raw.githubusercontent.com/python-telegram-bot/python-telegram-bot/master/tests/data/telegram.gif' + + bot_info = get_bot() + cls._chat_id = bot_info['chat_id'] + cls._bot = telegram.Bot(bot_info['token']) + + document_file = open('tests/data/telegram.png', 'rb') + document = cls._bot.send_document(cls._chat_id, document=document_file, timeout=10).document + cls.document = document + + # Make sure file has been uploaded. + # Simple assertions PY2 Only + assert isinstance(cls.document, telegram.Document) + assert isinstance(cls.document.file_id, str) + assert cls.document.file_id is not '' + def setUp(self): self.document_file = open('tests/data/telegram.png', 'rb') - self.document_file_id = 'BQADAQADpAADHyP1B04ipZxJTe2BAg' - self.document_file_url = 'https://raw.githubusercontent.com/python-telegram-bot/python-telegram-bot/master/tests/data/telegram.gif' - self.thumb = { - 'width': 90, - 'height': 90, - 'file_id': 'BQADAQADoQADHyP1B0mzJMVyzcB0Ag', - 'file_size': 2364 - } - self.file_name = 'telegram.png' - self.mime_type = 'image/png' - self.file_size = 12948 - self.json_dict = { - 'file_id': self.document_file_id, - 'thumb': self.thumb, - 'file_name': self.file_name, - 'mime_type': self.mime_type, - 'file_size': self.file_size + 'file_id': self.document.file_id, + 'thumb': self.document.thumb.to_dict(), + 'file_name': self.document.file_name, + 'mime_type': self.document.mime_type, + 'file_size': self.document.file_size } + def test_expected_values(self): + self.assertEqual(self.document.file_size, 12948) + self.assertEqual(self.document.mime_type, 'image/png') + self.assertEqual(self.document.file_name, 'telegram.png') + self.assertEqual(self.document.thumb.file_size, 2364) + self.assertEqual(self.document.thumb.width, 90) + self.assertEqual(self.document.thumb.height, 90) + @flaky(3, 1) @timeout(10) - def test_send_document_png_file(self): - message = self._bot.sendDocument(self._chat_id, self.document_file, caption='caption text') + def test_send_document_all_args(self): + message = self._bot.sendDocument(self._chat_id, document=self.document_file, caption=self.caption, + disable_notification=False) document = message.document + self.assertIsInstance(document, telegram.Document) self.assertTrue(isinstance(document.file_id, str)) self.assertNotEqual(document.file_id, '') self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) - self.assertEqual(document.file_name, self.file_name) - self.assertEqual(document.mime_type, self.mime_type) - self.assertEqual(document.file_size, self.file_size) + self.assertEqual(document.file_name, self.document.file_name) + self.assertEqual(document.mime_type, self.document.mime_type) + self.assertEqual(document.file_size, self.document.file_size) + self.assertEqual(document.thumb, self.document.thumb) + self.assertEqual(message.caption, self.caption) @flaky(3, 1) @timeout(10) @@ -77,12 +93,7 @@ class DocumentTest(BaseTest, unittest.TestCase): document = message.document - self.assertTrue(isinstance(document.file_id, str)) - self.assertNotEqual(document.file_id, '') - self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) self.assertEqual(document.file_name, 'telegram_custom.png') - self.assertEqual(document.mime_type, self.mime_type) - self.assertEqual(document.file_size, self.file_size) @flaky(3, 1) @timeout(10) @@ -91,6 +102,7 @@ class DocumentTest(BaseTest, unittest.TestCase): document = message.document + self.assertIsInstance(document, telegram.Document) self.assertTrue(isinstance(document.file_id, str)) self.assertNotEqual(document.file_id, '') self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) @@ -101,23 +113,20 @@ class DocumentTest(BaseTest, unittest.TestCase): @flaky(3, 1) @timeout(10) def test_send_document_resend(self): - message = self._bot.sendDocument(chat_id=self._chat_id, document=self.document_file_id) + message = self._bot.sendDocument(chat_id=self._chat_id, document=self.document.file_id) document = message.document - self.assertEqual(document.file_id, self.document_file_id) - self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) - self.assertEqual(document.file_name, self.file_name) - self.assertEqual(document.mime_type, self.mime_type) + self.assertEqual(document, self.document) def test_document_de_json(self): document = telegram.Document.de_json(self.json_dict, self._bot) - self.assertEqual(document.file_id, self.document_file_id) + self.assertEqual(document.file_id, self.document.file_id) self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) - self.assertEqual(document.file_name, self.file_name) - self.assertEqual(document.mime_type, self.mime_type) - self.assertEqual(document.file_size, self.file_size) + self.assertEqual(document.file_name, self.document.file_name) + self.assertEqual(document.mime_type, self.document.mime_type) + self.assertEqual(document.file_size, self.document.file_size) def test_document_to_json(self): document = telegram.Document.de_json(self.json_dict, self._bot) @@ -125,14 +134,13 @@ class DocumentTest(BaseTest, unittest.TestCase): self.assertTrue(self.is_json(document.to_json())) def test_document_to_dict(self): - document = telegram.Document.de_json(self.json_dict, self._bot) + document = telegram.Document.de_json(self.json_dict, self._bot).to_dict() - self.assertTrue(self.is_dict(document.to_dict())) - self.assertEqual(document['file_id'], self.document_file_id) - self.assertTrue(isinstance(document['thumb'], telegram.PhotoSize)) - self.assertEqual(document['file_name'], self.file_name) - self.assertEqual(document['mime_type'], self.mime_type) - self.assertEqual(document['file_size'], self.file_size) + self.assertTrue(self.is_dict(document)) + self.assertEqual(document['file_id'], self.document.file_id) + self.assertEqual(document['file_name'], self.document.file_name) + self.assertEqual(document['mime_type'], self.document.mime_type) + self.assertEqual(document['file_size'], self.document.file_size) @flaky(3, 1) @timeout(10) @@ -142,9 +150,8 @@ class DocumentTest(BaseTest, unittest.TestCase): del (json_dict['file_id']) json_dict['document'] = open(os.devnull, 'rb') - self.assertRaises(telegram.TelegramError, - lambda: self._bot.sendDocument(chat_id=self._chat_id, - **json_dict)) + with self.assertRaises(telegram.TelegramError): + self._bot.sendDocument(chat_id=self._chat_id, **json_dict) @flaky(3, 1) @timeout(10) @@ -154,9 +161,8 @@ class DocumentTest(BaseTest, unittest.TestCase): del (json_dict['file_id']) json_dict['document'] = '' - self.assertRaises(telegram.TelegramError, - lambda: self._bot.sendDocument(chat_id=self._chat_id, - **json_dict)) + with self.assertRaises(telegram.TelegramError): + self._bot.sendDocument(chat_id=self._chat_id, **json_dict) @flaky(3, 1) @timeout(10) @@ -165,9 +171,7 @@ class DocumentTest(BaseTest, unittest.TestCase): del (json_dict['file_id']) - self.assertRaises(TypeError, - lambda: self._bot.sendDocument(chat_id=self._chat_id, - **json_dict)) + with self.assertRaises(TypeError): self._bot.sendDocument(chat_id=self._chat_id, **json_dict) @flaky(3, 1) @timeout(10) @@ -176,13 +180,18 @@ class DocumentTest(BaseTest, unittest.TestCase): message = self._bot.sendMessage(self._chat_id, '.') message = message.reply_document(self.document_file) - self.assertNotEqual(message.document.file_id, '') + document = message.document + + self.assertIsInstance(document, telegram.Document) + self.assertTrue(isinstance(document.file_id, str)) + self.assertNotEqual(document.file_id, '') + self.assertTrue(isinstance(document.thumb, telegram.PhotoSize)) def test_equality(self): - a = telegram.Document(self.document_file_id) - b = telegram.Document(self.document_file_id) + a = telegram.Document(self.document.file_id) + b = telegram.Document(self.document.file_id) d = telegram.Document("") - e = telegram.Voice(self.document_file_id, 0) + e = telegram.Voice(self.document.file_id, 0) self.assertEqual(a, b) self.assertEqual(hash(a), hash(b)) diff --git a/tests/test_photo.py b/tests/test_photo.py index fe44ce4b9..86a3a24f7 100644 --- a/tests/test_photo.py +++ b/tests/test_photo.py @@ -18,19 +18,15 @@ # along with this program. If not, see [http://www.gnu.org/licenses/]. """This module contains an object that represents Tests for Telegram Photo""" -from io import BytesIO -import sys -import unittest import os +import unittest +from io import BytesIO from flaky import flaky -from tests.bots import get_bot - -sys.path.append('.') - import telegram from tests.base import BaseTest, timeout +from tests.bots import get_bot class PhotoTest(BaseTest, unittest.TestCase):