1818# along with this program. If not, see [http://www.gnu.org/licenses/].
1919"""This module contains an object that represents Tests for Telegram Audio"""
2020
21- import sys
22- import unittest
2321import os
22+ import unittest
2423
2524from flaky import flaky
2625
27- sys .path .append ('.' )
28-
2926import telegram
3027from tests .base import BaseTest , timeout
28+ from tests .bots import get_bot
3129
3230
3331class AudioTest (BaseTest , unittest .TestCase ):
3432 """This object represents Tests for Telegram Audio."""
3533
34+ @classmethod
35+ def setUpClass (cls ):
36+ cls .caption = "Test audio"
37+ cls .performer = 'Leandro Toledo'
38+ cls .title = 'Teste'
39+ cls .audio_file_url = 'https://raw.githubusercontent.com/python-telegram-bot/python-telegram-bot/master/tests/data/telegram.mp3'
40+
41+ bot_info = get_bot ()
42+ cls ._chat_id = bot_info ['chat_id' ]
43+ cls ._bot = telegram .Bot (bot_info ['token' ])
44+
45+ audio_file = open ('tests/data/telegram.mp3' , 'rb' )
46+ audio = cls ._bot .send_audio (cls ._chat_id , audio = audio_file , timeout = 10 ).audio
47+ cls .audio = audio
48+
49+ # Make sure file has been uploaded.
50+ # Simple assertions PY2 Only
51+ assert isinstance (cls .audio , telegram .Audio )
52+ assert isinstance (cls .audio .file_id , str )
53+ assert cls .audio .file_id is not ''
54+
3655 def setUp (self ):
3756 self .audio_file = open ('tests/data/telegram.mp3' , 'rb' )
38- self .audio_file_id = 'CQADAQADDwADHyP1B6PSPq2HjX8kAg'
39- self .audio_file_url = 'https://raw.githubusercontent.com/python-telegram-bot/python-telegram-bot/master/tests/data/telegram.mp3'
40- self .duration = 4
41- self .performer = 'Leandro Toledo'
42- self .title = 'Teste'
43- self .caption = "Test audio"
44- self .mime_type = 'audio/mpeg'
45- self .file_size = 28232
46-
4757 self .json_dict = {
48- 'file_id' : self .audio_file_id ,
49- 'duration' : self .duration ,
58+ 'file_id' : self .audio . file_id ,
59+ 'duration' : self .audio . duration ,
5060 'performer' : self .performer ,
5161 'title' : self .title ,
5262 'caption' : self .caption ,
53- 'mime_type' : self .mime_type ,
54- 'file_size' : self .file_size
63+ 'mime_type' : self .audio . mime_type ,
64+ 'file_size' : self .audio . file_size
5565 }
5666
57- @flaky (3 , 1 )
58- @timeout (10 )
59- def test_send_audio_required_args_only (self ):
60- message = self ._bot .sendAudio (self ._chat_id , self .audio_file )
61-
62- self .assertEqual (message .caption , None )
63-
64- audio = message .audio
65-
66- self .assertTrue (isinstance (audio .file_id , str ))
67- self .assertNotEqual (audio .file_id , None )
68- # self.assertEqual(audio.duration, 4)
69- self .assertEqual (audio .performer , None )
70- self .assertEqual (audio .title , None )
71- self .assertEqual (audio .mime_type , self .mime_type )
72- self .assertEqual (audio .file_size , self .file_size )
67+ def test_expected_values (self ):
68+ self .assertEqual (self .audio .duration , 4 )
69+ self .assertEqual (self .audio .performer , None )
70+ self .assertEqual (self .audio .title , None )
71+ self .assertEqual (self .audio .mime_type , 'audio/ogg' )
72+ self .assertEqual (self .audio .file_size , 28232 )
7373
7474 @flaky (3 , 1 )
7575 @timeout (10 )
7676 def test_send_audio_all_args (self ):
7777 message = self ._bot .sendAudio (
7878 self ._chat_id ,
7979 self .audio_file ,
80- duration = self .duration ,
81- performer = self .performer ,
82- title = self .title ,
8380 caption = self .caption ,
84- mime_type = self .mime_type ,
85- file_size = self .file_size )
86-
87- self .assertEqual (message .caption , self .caption )
88-
89- audio = message .audio
90-
91- self .assertTrue (isinstance (audio .file_id , str ))
92- self .assertNotEqual (audio .file_id , None )
93- self .assertEqual (audio .duration , self .duration )
94- self .assertEqual (audio .performer , self .performer )
95- self .assertEqual (audio .title , self .title )
96- self .assertEqual (audio .mime_type , self .mime_type )
97- self .assertEqual (audio .file_size , self .file_size )
98-
99- @flaky (3 , 1 )
100- @timeout (10 )
101- def test_send_audio_mp3_file (self ):
102- message = self ._bot .sendAudio (
103- chat_id = self ._chat_id ,
104- audio = self .audio_file ,
105- duration = self .duration ,
81+ duration = self .audio .duration ,
10682 performer = self .performer ,
10783 title = self .title ,
108- caption = self . caption )
84+ disable_notification = False )
10985
11086 self .assertEqual (message .caption , self .caption )
11187
11288 audio = message .audio
11389
114- self .assertTrue (isinstance (audio .file_id , str ))
90+ self .assertIsInstance (audio , telegram .Audio )
91+ self .assertIsInstance (audio .file_id , str )
11592 self .assertNotEqual (audio .file_id , None )
116- self .assertEqual (audio .duration , self .duration )
93+ self .assertEqual (audio .duration , self .audio . duration )
11794 self .assertEqual (audio .performer , self .performer )
11895 self .assertEqual (audio .title , self .title )
119- self .assertEqual (audio .mime_type , self .mime_type )
120- self .assertEqual (audio .file_size , self .file_size )
121-
122- @flaky (3 , 1 )
123- @timeout (10 )
124- def test_send_audio_mp3_file_custom_filename (self ):
125- message = self ._bot .sendAudio (
126- chat_id = self ._chat_id ,
127- audio = self .audio_file ,
128- duration = self .duration ,
129- performer = self .performer ,
130- title = self .title ,
131- caption = self .caption ,
132- filename = 'telegram_custom.mp3' )
133-
134- self .assertEqual (message .caption , self .caption )
135-
136- audio = message .audio
137-
138- self .assertTrue (isinstance (audio .file_id , str ))
139- self .assertNotEqual (audio .file_id , None )
140- self .assertEqual (audio .duration , self .duration )
141- self .assertEqual (audio .performer , self .performer )
142- self .assertEqual (audio .title , self .title )
143- self .assertEqual (audio .mime_type , self .mime_type )
144- self .assertEqual (audio .file_size , self .file_size )
96+ self .assertEqual (audio .mime_type , self .audio .mime_type )
97+ self .assertEqual (audio .file_size , self .audio .file_size )
14598
14699 @flaky (3 , 1 )
147100 @timeout (10 )
148101 def test_send_audio_mp3_url_file (self ):
149- message = self ._bot .sendAudio (
150- chat_id = self ._chat_id , audio = self .audio_file_url , duration = self .duration )
102+ message = self ._bot .sendAudio (chat_id = self ._chat_id , audio = self .audio_file_url )
151103
152104 audio = message .audio
153105
154- self .assertTrue (isinstance (audio .file_id , str ))
106+ self .assertIsInstance (audio , telegram .Audio )
107+ self .assertIsInstance (audio .file_id , str )
155108 self .assertNotEqual (audio .file_id , None )
156- self .assertEqual (audio .duration , self .duration )
157- self .assertEqual (audio .mime_type , self .mime_type )
158- self .assertEqual (audio .file_size , self .file_size )
109+ self .assertEqual (audio .duration , self .audio . duration )
110+ self .assertEqual (audio .mime_type , self .audio . mime_type )
111+ self .assertEqual (audio .file_size , self .audio . file_size )
159112
160113 @flaky (3 , 1 )
161114 @timeout (10 )
162115 def test_send_audio_mp3_url_file_with_caption (self ):
163116 message = self ._bot .sendAudio (
164117 chat_id = self ._chat_id ,
165118 audio = self .audio_file_url ,
166- duration = self .duration ,
167119 caption = self .caption )
168120
169121 self .assertEqual (message .caption , self .caption )
170122
171123 audio = message .audio
172124
173- self .assertTrue (isinstance (audio .file_id , str ))
125+ self .assertIsInstance (audio , telegram .Audio )
126+ self .assertIsInstance (audio .file_id , str )
174127 self .assertNotEqual (audio .file_id , None )
175- self .assertEqual (audio .duration , self .duration )
176- self .assertEqual (audio .mime_type , self .mime_type )
177- self .assertEqual (audio .file_size , self .file_size )
128+ self .assertEqual (audio .duration , self .audio . duration )
129+ self .assertEqual (audio .mime_type , self .audio . mime_type )
130+ self .assertEqual (audio .file_size , self .audio . file_size )
178131
179132 @flaky (3 , 1 )
180133 @timeout (10 )
181134 def test_send_audio_resend (self ):
182135 message = self ._bot .sendAudio (
183136 chat_id = self ._chat_id ,
184- audio = self .audio_file_id ,
185- duration = self .duration ,
186- performer = self .performer ,
187- title = self .title ,
188- caption = self .caption )
189-
190- self .assertEqual (message .caption , self .caption )
137+ audio = self .audio .file_id )
191138
192139 audio = message .audio
193140
194- self .assertEqual (audio .file_id , self .audio_file_id )
195- self .assertEqual (audio .duration , self .duration )
196- self .assertEqual (audio .performer , self .performer )
197- self .assertEqual (audio .title , self .title )
198- self .assertEqual (audio .mime_type , self .mime_type )
141+ self .assertEqual (audio , self .audio )
199142
200143 def test_audio_de_json (self ):
201144 audio = telegram .Audio .de_json (self .json_dict , self ._bot )
202145
203- self .assertEqual (audio .file_id , self .audio_file_id )
204- self .assertEqual (audio .duration , self .duration )
146+ self .assertIsInstance (audio , telegram .Audio )
147+ self .assertEqual (audio .file_id , self .audio .file_id )
148+ self .assertEqual (audio .duration , self .audio .duration )
205149 self .assertEqual (audio .performer , self .performer )
206150 self .assertEqual (audio .title , self .title )
207- self .assertEqual (audio .mime_type , self .mime_type )
208- self .assertEqual (audio .file_size , self .file_size )
151+ self .assertEqual (audio .mime_type , self .audio . mime_type )
152+ self .assertEqual (audio .file_size , self .audio . file_size )
209153
210154 def test_audio_to_json (self ):
211- audio = telegram .Audio .de_json (self .json_dict , self ._bot )
212-
213- self .assertTrue (self .is_json (audio .to_json ()))
155+ self .assertTrue (self .is_json (self .audio .to_json ()))
214156
215157 def test_audio_to_dict (self ):
216- audio = telegram . Audio . de_json ( self .json_dict , self . _bot )
158+ audio = self .audio . to_dict ( )
217159
218- self .assertTrue (self .is_dict (audio . to_dict () ))
219- self .assertEqual (audio ['file_id' ], self .audio_file_id )
220- self .assertEqual (audio ['duration' ], self .duration )
160+ self .assertTrue (self .is_dict (audio ))
161+ self .assertEqual (audio ['file_id' ], self .audio . file_id )
162+ self .assertEqual (audio ['duration' ], self .audio . duration )
221163 self .assertEqual (audio ['performer' ], self .performer )
222164 self .assertEqual (audio ['title' ], self .title )
223- self .assertEqual (audio ['mime_type' ], self .mime_type )
224- self .assertEqual (audio ['file_size' ], self .file_size )
165+ self .assertEqual (audio ['mime_type' ], self .audio . mime_type )
166+ self .assertEqual (audio ['file_size' ], self .audio . file_size )
225167
226168 @flaky (3 , 1 )
227169 @timeout (10 )
@@ -231,9 +173,8 @@ def test_error_send_audio_empty_file(self):
231173 del (json_dict ['file_id' ])
232174 json_dict ['audio' ] = open (os .devnull , 'rb' )
233175
234- self .assertRaises (
235- telegram .TelegramError ,
236- lambda : self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict ))
176+ with self .assertRaises (telegram .TelegramError ):
177+ self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict )
237178
238179 @flaky (3 , 1 )
239180 @timeout (10 )
@@ -243,9 +184,8 @@ def test_error_send_audio_empty_file_id(self):
243184 del (json_dict ['file_id' ])
244185 json_dict ['audio' ] = ''
245186
246- self .assertRaises (
247- telegram .TelegramError ,
248- lambda : self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict ))
187+ with self .assertRaises (telegram .TelegramError ):
188+ self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict )
249189
250190 @flaky (3 , 1 )
251191 @timeout (10 )
@@ -255,25 +195,26 @@ def test_error_audio_without_required_args(self):
255195 del (json_dict ['file_id' ])
256196 del (json_dict ['duration' ])
257197
258- self .assertRaises (
259- TypeError ,
260- lambda : self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict ))
198+ with self .assertRaises (TypeError ):
199+ self ._bot .sendAudio (chat_id = self ._chat_id , ** json_dict )
261200
262201 @flaky (3 , 1 )
263202 @timeout (10 )
264203 def test_reply_audio (self ):
265204 """Test for Message.reply_audio"""
266205 message = self ._bot .sendMessage (self ._chat_id , '.' )
267- message = message .reply_audio (self .audio_file )
206+ audio = message .reply_audio (self .audio_file ). audio
268207
269- self .assertNotEqual (message .audio .file_id , None )
208+ self .assertIsInstance (audio , telegram .Audio )
209+ self .assertIsInstance (audio .file_id , str )
210+ self .assertNotEqual (audio .file_id , None )
270211
271212 def test_equality (self ):
272- a = telegram .Audio (self .audio_file_id , self .duration )
273- b = telegram .Audio (self .audio_file_id , self .duration )
274- c = telegram .Audio (self .audio_file_id , 0 )
275- d = telegram .Audio ("" , self .duration )
276- e = telegram .Voice (self .audio_file_id , self .duration )
213+ a = telegram .Audio (self .audio . file_id , self . audio .duration )
214+ b = telegram .Audio (self .audio . file_id , self . audio .duration )
215+ c = telegram .Audio (self .audio . file_id , 0 )
216+ d = telegram .Audio ("" , self .audio . duration )
217+ e = telegram .Voice (self .audio . file_id , self . audio .duration )
277218
278219 self .assertEqual (a , b )
279220 self .assertEqual (hash (a ), hash (b ))
0 commit comments