X Tutup
Skip to content

Commit ca526fb

Browse files
committed
improve unit tests according to comments
1 parent e2cc8db commit ca526fb

File tree

5 files changed

+48
-90
lines changed

5 files changed

+48
-90
lines changed

telegram/inlinequery.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ def de_json(data):
6565
if not data:
6666
return None
6767

68-
data['from_user'] = User.de_json(data.pop('from'))
68+
data_ = data.copy() # Copy data so we can pop 'from'
69+
data_['from_user'] = User.de_json(data_.pop('from'))
6970

70-
return InlineQuery(**data)
71+
return InlineQuery(**data_)
7172

7273
def to_dict(self):
7374
"""

telegram/inlinequeryresult.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
"""
2020
This module contains the classes that represent Telegram InlineQueryResults
21+
https://core.telegram.org/bots/api#inline-mode
2122
"""
2223

2324
from telegram import TelegramObject

tests/test_choseninlineresult.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@
2020
"""This module contains a object that represents Tests for Telegram
2121
ChosenInlineResult"""
2222

23-
import os
24-
import unittest
2523
import sys
24+
25+
if sys.version_info[0:2] == (2, 6):
26+
import unittest2 as unittest
27+
else:
28+
import unittest
29+
2630
sys.path.append('.')
2731

2832
import telegram
@@ -53,7 +57,8 @@ def test_choseninlineresult_de_json(self):
5357
result = telegram.ChosenInlineResult.de_json(self.json_dict)
5458

5559
self.assertEqual(result.result_id, self.result_id)
56-
self.assertEqual(result.from_user.to_dict(), self.from_user.to_dict())
60+
self.assertDictEqual(result.from_user.to_dict(),
61+
self.from_user.to_dict())
5762
self.assertEqual(result.query, self.query)
5863

5964
def test_choseninlineresult_to_json(self):

tests/test_inlinequery.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@
2020
"""This module contains a object that represents Tests for Telegram
2121
InlineQuery"""
2222

23-
import os
24-
import unittest
2523
import sys
24+
25+
if sys.version_info[0:2] == (2, 6):
26+
import unittest2 as unittest
27+
else:
28+
import unittest
29+
2630
sys.path.append('.')
2731

2832
import telegram
@@ -55,7 +59,8 @@ def test_inlinequery_de_json(self):
5559
inlinequery = telegram.InlineQuery.de_json(self.json_dict)
5660

5761
self.assertEqual(inlinequery.id, self.id)
58-
self.assertEqual(inlinequery.from_user.to_dict(), self.from_user.to_dict())
62+
self.assertDictEqual(inlinequery.from_user.to_dict(),
63+
self.from_user.to_dict())
5964
self.assertEqual(inlinequery.query, self.query)
6065
self.assertEqual(inlinequery.offset, self.offset)
6166

@@ -74,10 +79,7 @@ def test_inlinequery_to_dict(self):
7479
inlinequery = telegram.InlineQuery.de_json(self.json_dict).to_dict()
7580

7681
self.assertTrue(self.is_dict(inlinequery))
77-
self.assertEqual(inlinequery['id'], self.id)
78-
self.assertEqual(inlinequery['from'], self.from_user.to_dict())
79-
self.assertEqual(inlinequery['query'], self.query)
80-
self.assertEqual(inlinequery['offset'], self.offset)
82+
self.assertDictEqual(inlinequery, self.json_dict)
8183

8284

8385
if __name__ == '__main__':

tests/test_inlineresult.py

Lines changed: 27 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@
2020
"""This module contains a object that represents Tests for Telegram
2121
InlineResults"""
2222

23-
import os
24-
import unittest
2523
import sys
24+
25+
if sys.version_info[0:2] == (2, 6):
26+
import unittest2 as unittest
27+
else:
28+
import unittest
29+
2630
sys.path.append('.')
2731

2832
import telegram
@@ -34,6 +38,7 @@ class InlineQueryResultArticleTest(BaseTest, unittest.TestCase):
3438

3539
def setUp(self):
3640
self.id = 'id'
41+
self.type = 'article'
3742
self.title = 'title'
3843
self.message_text = 'message text'
3944
self.parse_mode = 'HTML'
@@ -46,7 +51,7 @@ def setUp(self):
4651
self.thumb_width = 15
4752

4853
self.json_dict = {
49-
'type': 'article',
54+
'type': self.type,
5055
'id': self.id,
5156
'title': self.title,
5257
'message_text': self.message_text,
@@ -66,7 +71,7 @@ def test_article_de_json(self):
6671

6772
article = telegram.InlineQueryResultArticle.de_json(self.json_dict)
6873

69-
self.assertEqual(article.type, 'article')
74+
self.assertEqual(article.type, self.type)
7075
self.assertEqual(article.id, self.id)
7176
self.assertEqual(article.title, self.title)
7277
self.assertEqual(article.message_text, self.message_text)
@@ -96,26 +101,15 @@ def test_article_to_dict(self):
96101
telegram.InlineQueryResultArticle.de_json(self.json_dict).to_dict()
97102

98103
self.assertTrue(self.is_dict(article))
99-
self.assertEqual(article['type'], 'article')
100-
self.assertEqual(article['id'], self.id)
101-
self.assertEqual(article['title'], self.title)
102-
self.assertEqual(article['message_text'], self.message_text)
103-
self.assertEqual(article['parse_mode'], self.parse_mode)
104-
self.assertEqual(article['disable_web_page_preview'],
105-
self.disable_web_page_preview)
106-
self.assertEqual(article['url'], self.url)
107-
self.assertEqual(article['hide_url'], self.hide_url)
108-
self.assertEqual(article['description'], self.description)
109-
self.assertEqual(article['thumb_url'], self.thumb_url)
110-
self.assertEqual(article['thumb_height'], self.thumb_height)
111-
self.assertEqual(article['thumb_width'], self.thumb_width)
104+
self.assertDictEqual(self.json_dict, article)
112105

113106

114107
class InlineQueryResultPhotoTest(BaseTest, unittest.TestCase):
115108
"""This object represents Tests for Telegram InlineQueryResultPhoto."""
116109

117110
def setUp(self):
118111
self.id = 'id'
112+
self.type = 'photo'
119113
self.photo_url = 'photo url'
120114
self.mime_type = 'mime type'
121115
self.photo_width = 10
@@ -128,7 +122,7 @@ def setUp(self):
128122
self.disable_web_page_preview = True
129123

130124
self.json_dict = {
131-
'type': 'photo',
125+
'type': self.type,
132126
'id': self.id,
133127
'photo_url': self.photo_url,
134128
'mime_type': self.mime_type,
@@ -148,7 +142,7 @@ def test_photo_de_json(self):
148142

149143
photo = telegram.InlineQueryResultPhoto.de_json(self.json_dict)
150144

151-
self.assertEqual(photo.type, 'photo')
145+
self.assertEqual(photo.type, self.type)
152146
self.assertEqual(photo.id, self.id)
153147
self.assertEqual(photo.photo_url, self.photo_url)
154148
self.assertEqual(photo.mime_type, self.mime_type)
@@ -178,26 +172,15 @@ def test_photo_to_dict(self):
178172
telegram.InlineQueryResultPhoto.de_json(self.json_dict).to_dict()
179173

180174
self.assertTrue(self.is_dict(photo))
181-
self.assertEqual(photo['type'], 'photo')
182-
self.assertEqual(photo['id'], self.id)
183-
self.assertEqual(photo['photo_url'], self.photo_url)
184-
self.assertEqual(photo['mime_type'], self.mime_type)
185-
self.assertEqual(photo['photo_width'], self.photo_width)
186-
self.assertEqual(photo['photo_height'], self.photo_height)
187-
self.assertEqual(photo['thumb_url'], self.thumb_url)
188-
self.assertEqual(photo['title'], self.title)
189-
self.assertEqual(photo['caption'], self.caption)
190-
self.assertEqual(photo['message_text'], self.message_text)
191-
self.assertEqual(photo['parse_mode'], self.parse_mode)
192-
self.assertEqual(photo['disable_web_page_preview'],
193-
self.disable_web_page_preview)
175+
self.assertDictEqual(self.json_dict, photo)
194176

195177

196178
class InlineQueryResultGifTest(BaseTest, unittest.TestCase):
197179
"""This object represents Tests for Telegram InlineQueryResultGif."""
198180

199181
def setUp(self):
200182
self.id = 'id'
183+
self.type = 'gif'
201184
self.gif_url = 'gif url'
202185
self.gif_width = 10
203186
self.gif_height = 15
@@ -209,7 +192,7 @@ def setUp(self):
209192
self.disable_web_page_preview = True
210193

211194
self.json_dict = {
212-
'type': 'gif',
195+
'type': self.type,
213196
'id': self.id,
214197
'gif_url': self.gif_url,
215198
'gif_width': self.gif_width,
@@ -228,7 +211,7 @@ def test_gif_de_json(self):
228211

229212
gif = telegram.InlineQueryResultGif.de_json(self.json_dict)
230213

231-
self.assertEqual(gif.type, 'gif')
214+
self.assertEqual(gif.type, self.type)
232215
self.assertEqual(gif.id, self.id)
233216
self.assertEqual(gif.gif_url, self.gif_url)
234217
self.assertEqual(gif.gif_width, self.gif_width)
@@ -256,25 +239,15 @@ def test_gif_to_dict(self):
256239
gif = telegram.InlineQueryResultGif.de_json(self.json_dict).to_dict()
257240

258241
self.assertTrue(self.is_dict(gif))
259-
self.assertEqual(gif['type'], 'gif')
260-
self.assertEqual(gif['id'], self.id)
261-
self.assertEqual(gif['gif_url'], self.gif_url)
262-
self.assertEqual(gif['gif_width'], self.gif_width)
263-
self.assertEqual(gif['gif_height'], self.gif_height)
264-
self.assertEqual(gif['thumb_url'], self.thumb_url)
265-
self.assertEqual(gif['title'], self.title)
266-
self.assertEqual(gif['caption'], self.caption)
267-
self.assertEqual(gif['message_text'], self.message_text)
268-
self.assertEqual(gif['parse_mode'], self.parse_mode)
269-
self.assertEqual(gif['disable_web_page_preview'],
270-
self.disable_web_page_preview)
242+
self.assertDictEqual(self.json_dict, gif)
271243

272244

273245
class InlineQueryResultMpeg4GifTest(BaseTest, unittest.TestCase):
274246
"""This object represents Tests for Telegram InlineQueryResultMpeg4Gif."""
275247

276248
def setUp(self):
277249
self.id = 'id'
250+
self.type = 'mpeg4_gif'
278251
self.mpeg4_url = 'mpeg4 url'
279252
self.mpeg4_width = 10
280253
self.mpeg4_height = 15
@@ -286,7 +259,7 @@ def setUp(self):
286259
self.disable_web_page_preview = True
287260

288261
self.json_dict = {
289-
'type': 'gif',
262+
'type': self.type,
290263
'id': self.id,
291264
'mpeg4_url': self.mpeg4_url,
292265
'mpeg4_width': self.mpeg4_width,
@@ -305,7 +278,7 @@ def test_mpeg4_de_json(self):
305278

306279
mpeg4 = telegram.InlineQueryResultMpeg4Gif.de_json(self.json_dict)
307280

308-
self.assertEqual(mpeg4.type, 'mpeg4_gif')
281+
self.assertEqual(mpeg4.type, self.type)
309282
self.assertEqual(mpeg4.id, self.id)
310283
self.assertEqual(mpeg4.mpeg4_url, self.mpeg4_url)
311284
self.assertEqual(mpeg4.mpeg4_width, self.mpeg4_width)
@@ -334,26 +307,16 @@ def test_mpeg4_to_dict(self):
334307
telegram.InlineQueryResultMpeg4Gif.de_json(self.json_dict).to_dict()
335308

336309
self.assertTrue(self.is_dict(mpeg4))
337-
self.assertEqual(mpeg4['type'], 'mpeg4_gif')
338-
self.assertEqual(mpeg4['id'], self.id)
339-
self.assertEqual(mpeg4['mpeg4_url'], self.mpeg4_url)
340-
self.assertEqual(mpeg4['mpeg4_width'], self.mpeg4_width)
341-
self.assertEqual(mpeg4['mpeg4_height'], self.mpeg4_height)
342-
self.assertEqual(mpeg4['thumb_url'], self.thumb_url)
343-
self.assertEqual(mpeg4['title'], self.title)
344-
self.assertEqual(mpeg4['caption'], self.caption)
345-
self.assertEqual(mpeg4['message_text'], self.message_text)
346-
self.assertEqual(mpeg4['parse_mode'], self.parse_mode)
347-
self.assertEqual(mpeg4['disable_web_page_preview'],
348-
self.disable_web_page_preview)
310+
self.assertDictEqual(self.json_dict, mpeg4)
349311

350312

351313
class InlineQueryResultVideoTest(BaseTest, unittest.TestCase):
352314
"""This object represents Tests for Telegram InlineQueryResultVideo."""
353315

354316
def setUp(self):
355317
self.id = 'id'
356-
self.video_url = 'mpeg4 url'
318+
self.type = 'video'
319+
self.video_url = 'video url'
357320
self.mime_type = 'mime type'
358321
self.video_width = 10
359322
self.video_height = 15
@@ -367,7 +330,7 @@ def setUp(self):
367330
self.disable_web_page_preview = True
368331

369332
self.json_dict = {
370-
'type': 'video',
333+
'type': self.type,
371334
'id': self.id,
372335
'video_url': self.video_url,
373336
'mime_type': self.mime_type,
@@ -389,7 +352,7 @@ def test_video_de_json(self):
389352

390353
video = telegram.InlineQueryResultVideo.de_json(self.json_dict)
391354

392-
self.assertEqual(video.type, 'video')
355+
self.assertEqual(video.type, self.type)
393356
self.assertEqual(video.id, self.id)
394357
self.assertEqual(video.video_url, self.video_url)
395358
self.assertEqual(video.mime_type, self.mime_type)
@@ -421,21 +384,7 @@ def test_video_to_dict(self):
421384
telegram.InlineQueryResultVideo.de_json(self.json_dict).to_dict()
422385

423386
self.assertTrue(self.is_dict(video))
424-
self.assertEqual(video['type'], 'video')
425-
self.assertEqual(video['id'], self.id)
426-
self.assertEqual(video['video_url'], self.video_url)
427-
self.assertEqual(video['mime_type'], self.mime_type)
428-
self.assertEqual(video['video_width'], self.video_width)
429-
self.assertEqual(video['video_height'], self.video_height)
430-
self.assertEqual(video['video_duration'], self.video_duration)
431-
self.assertEqual(video['thumb_url'], self.thumb_url)
432-
self.assertEqual(video['title'], self.title)
433-
self.assertEqual(video['description'], self.description)
434-
self.assertEqual(video['caption'], self.caption)
435-
self.assertEqual(video['message_text'], self.message_text)
436-
self.assertEqual(video['parse_mode'], self.parse_mode)
437-
self.assertEqual(video['disable_web_page_preview'],
438-
self.disable_web_page_preview)
387+
self.assertDictEqual(self.json_dict, video)
439388

440389

441390
if __name__ == '__main__':

0 commit comments

Comments
 (0)
X Tutup