3838
3939sys .path .append ('.' )
4040
41- from telegram import Update , Message , TelegramError , User , Chat , Updater
41+ from telegram import Update , Message , TelegramError , User , Chat , Updater , Bot
4242from telegram .dispatcher import run_async
4343from tests .base import BaseTest
4444from threading import Lock , Thread
@@ -61,14 +61,18 @@ class UpdaterTest(BaseTest, unittest.TestCase):
6161 """
6262
6363 def setUp (self ):
64- self .updater = Updater ('' , workers = 2 )
65-
64+ self .updater = None
6665 self .received_message = None
6766 self .message_count = 0
6867 self .lock = Lock ()
6968
69+ def _setup_updater (self , * args , ** kwargs ):
70+ bot = MockBot (* args , ** kwargs )
71+ self .updater = Updater (workers = 2 , bot = bot )
72+
7073 def tearDown (self ):
71- self .updater .stop ()
74+ if self .updater is not None :
75+ self .updater .stop ()
7276
7377 def reset (self ):
7478 self .message_count = 0
@@ -119,8 +123,7 @@ def errorHandlerTest(self, bot, update, error):
119123
120124 def test_addRemoveTelegramMessageHandler (self ):
121125 print ('Testing add/removeTelegramMessageHandler' )
122- bot = MockBot ('Test' )
123- self .updater .bot = bot
126+ self ._setup_updater ('Test' )
124127 d = self .updater .dispatcher
125128 d .addTelegramMessageHandler (
126129 self .telegramHandlerTest )
@@ -132,13 +135,13 @@ def test_addRemoveTelegramMessageHandler(self):
132135 d .removeTelegramMessageHandler (self .telegramHandlerTest )
133136 self .reset ()
134137
135- bot .send_messages = 1
138+ self . updater . bot .send_messages = 1
136139 sleep (.1 )
137140 self .assertTrue (None is self .received_message )
138141
139142 def test_addTelegramMessageHandlerMultipleMessages (self ):
140143 print ('Testing addTelegramMessageHandler and send 100 messages...' )
141- self .updater . bot = MockBot ('Multiple' , 100 )
144+ self ._setup_updater ('Multiple' , 100 )
142145 self .updater .dispatcher .addTelegramMessageHandler (
143146 self .telegramHandlerTest )
144147 self .updater .start_polling (0.0 )
@@ -148,8 +151,7 @@ def test_addTelegramMessageHandlerMultipleMessages(self):
148151
149152 def test_addRemoveTelegramRegexHandler (self ):
150153 print ('Testing add/removeStringRegexHandler' )
151- bot = MockBot ('Test2' )
152- self .updater .bot = bot
154+ self ._setup_updater ('Test2' )
153155 d = self .updater .dispatcher
154156 regobj = re .compile ('Te.*' )
155157 self .updater .dispatcher .addTelegramRegexHandler (regobj ,
@@ -162,14 +164,13 @@ def test_addRemoveTelegramRegexHandler(self):
162164 d .removeTelegramRegexHandler (regobj , self .telegramHandlerTest )
163165 self .reset ()
164166
165- bot .send_messages = 1
167+ self . updater . bot .send_messages = 1
166168 sleep (.1 )
167169 self .assertTrue (None is self .received_message )
168170
169171 def test_addRemoveTelegramCommandHandler (self ):
170172 print ('Testing add/removeTelegramCommandHandler' )
171- bot = MockBot ('/test' )
172- self .updater .bot = bot
173+ self ._setup_updater ('/test' )
173174 d = self .updater .dispatcher
174175 self .updater .dispatcher .addTelegramCommandHandler (
175176 'test' , self .telegramHandlerTest )
@@ -181,14 +182,13 @@ def test_addRemoveTelegramCommandHandler(self):
181182 d .removeTelegramCommandHandler ('test' , self .telegramHandlerTest )
182183 self .reset ()
183184
184- bot .send_messages = 1
185+ self . updater . bot .send_messages = 1
185186 sleep (.1 )
186187 self .assertTrue (None is self .received_message )
187188
188189 def test_addRemoveUnknownTelegramCommandHandler (self ):
189190 print ('Testing add/removeUnknownTelegramCommandHandler' )
190- bot = MockBot ('/test2' )
191- self .updater .bot = bot
191+ self ._setup_updater ('/test2' )
192192 d = self .updater .dispatcher
193193 self .updater .dispatcher .addUnknownTelegramCommandHandler (
194194 self .telegramHandlerTest )
@@ -200,14 +200,13 @@ def test_addRemoveUnknownTelegramCommandHandler(self):
200200 d .removeUnknownTelegramCommandHandler (self .telegramHandlerTest )
201201 self .reset ()
202202
203- bot .send_messages = 1
203+ self . updater . bot .send_messages = 1
204204 sleep (.1 )
205205 self .assertTrue (None is self .received_message )
206206
207207 def test_addRemoveStringRegexHandler (self ):
208208 print ('Testing add/removeStringRegexHandler' )
209- bot = MockBot ('' , messages = 0 )
210- self .updater .bot = bot
209+ self ._setup_updater ('' , messages = 0 )
211210 d = self .updater .dispatcher
212211 d .addStringRegexHandler ('Te.*' , self .stringHandlerTest )
213212 queue = self .updater .start_polling (0.01 )
@@ -225,8 +224,7 @@ def test_addRemoveStringRegexHandler(self):
225224
226225 def test_addRemoveStringCommandHandler (self ):
227226 print ('Testing add/removeStringCommandHandler' )
228- bot = MockBot ('' , messages = 0 )
229- self .updater .bot = bot
227+ self ._setup_updater ('' , messages = 0 )
230228 d = self .updater .dispatcher
231229 d .addStringCommandHandler (
232230 'test3' , self .stringHandlerTest )
@@ -246,8 +244,7 @@ def test_addRemoveStringCommandHandler(self):
246244
247245 def test_addRemoveUnknownStringCommandHandler (self ):
248246 print ('Testing add/removeUnknownStringCommandHandler' )
249- bot = MockBot ('/test' )
250- self .updater .bot = bot
247+ self ._setup_updater ('/test' )
251248 d = self .updater .dispatcher
252249 d .addUnknownStringCommandHandler (
253250 self .stringHandlerTest )
@@ -260,14 +257,13 @@ def test_addRemoveUnknownStringCommandHandler(self):
260257 d .removeUnknownStringCommandHandler (self .stringHandlerTest )
261258 self .reset ()
262259
263- bot .send_messages = 1
260+ self . updater . bot .send_messages = 1
264261 sleep (.1 )
265262 self .assertTrue (None is self .received_message )
266263
267264 def test_addRemoveErrorHandler (self ):
268265 print ('Testing add/removeErrorHandler' )
269- bot = MockBot ('' , messages = 0 )
270- self .updater .bot = bot
266+ self ._setup_updater ('' , messages = 0 )
271267 d = self .updater .dispatcher
272268 d .addErrorHandler (self .errorHandlerTest )
273269 queue = self .updater .start_polling (0.01 )
@@ -286,8 +282,7 @@ def test_addRemoveErrorHandler(self):
286282
287283 def test_errorInHandler (self ):
288284 print ('Testing error in Handler' )
289- bot = MockBot ('' , messages = 0 )
290- self .updater .bot = bot
285+ self ._setup_updater ('' , messages = 0 )
291286 d = self .updater .dispatcher
292287 d .addStringRegexHandler ('.*' ,
293288 self .errorRaisingHandlerTest )
@@ -300,8 +295,7 @@ def test_errorInHandler(self):
300295
301296 def test_errorOnGetUpdates (self ):
302297 print ('Testing error on getUpdates' )
303- bot = MockBot ('' , raise_error = True )
304- self .updater .bot = bot
298+ self ._setup_updater ('' , raise_error = True )
305299 d = self .updater .dispatcher
306300 d .addErrorHandler (self .errorHandlerTest )
307301 self .updater .start_polling (0.01 )
@@ -310,8 +304,7 @@ def test_errorOnGetUpdates(self):
310304
311305 def test_addRemoveTypeHandler (self ):
312306 print ('Testing add/removeTypeHandler' )
313- bot = MockBot ('' , messages = 0 )
314- self .updater .bot = bot
307+ self ._setup_updater ('' , messages = 0 )
315308 d = self .updater .dispatcher
316309 d .addTypeHandler (dict , self .stringHandlerTest )
317310 queue = self .updater .start_polling (0.01 )
@@ -330,8 +323,7 @@ def test_addRemoveTypeHandler(self):
330323
331324 def test_runAsync (self ):
332325 print ('Testing @run_async' )
333- bot = MockBot ('Test5' , messages = 2 )
334- self .updater .bot = bot
326+ self ._setup_updater ('Test5' , messages = 2 )
335327 d = self .updater .dispatcher
336328 d .addTelegramMessageHandler (
337329 self .asyncHandlerTest )
@@ -342,7 +334,7 @@ def test_runAsync(self):
342334
343335 def test_additionalArgs (self ):
344336 print ('Testing additional arguments for handlers' )
345- self .updater . bot = MockBot ('' , messages = 0 )
337+ self ._setup_updater ('' , messages = 0 )
346338 self .updater .dispatcher .addStringCommandHandler (
347339 'test5' , self .additionalArgsTest )
348340
@@ -354,8 +346,7 @@ def test_additionalArgs(self):
354346
355347 def test_regexGroupHandler (self ):
356348 print ('Testing optional groups and groupdict parameters' )
357- bot = MockBot ('' , messages = 0 )
358- self .updater .bot = bot
349+ self ._setup_updater ('' , messages = 0 )
359350 d = self .updater .dispatcher
360351 d .addStringRegexHandler ('^(This).*?(?P<testgroup>regex group).*' ,
361352 self .regexGroupHandlerTest )
@@ -368,8 +359,7 @@ def test_regexGroupHandler(self):
368359
369360 def test_runAsyncWithAdditionalArgs (self ):
370361 print ('Testing @run_async with additional parameters' )
371- bot = MockBot ('Test6' , messages = 2 )
372- self .updater .bot = bot
362+ self ._setup_updater ('Test6' , messages = 2 )
373363 d = self .updater .dispatcher
374364 d .addTelegramMessageHandler (
375365 self .asyncAdditionalHandlerTest )
@@ -380,8 +370,7 @@ def test_runAsyncWithAdditionalArgs(self):
380370
381371 def test_webhook (self ):
382372 print ('Testing Webhook' )
383- bot = MockBot ('' , messages = 0 )
384- self .updater .bot = bot
373+ self ._setup_updater ('' , messages = 0 )
385374 d = self .updater .dispatcher
386375 d .addTelegramMessageHandler (
387376 self .telegramHandlerTest )
@@ -442,8 +431,7 @@ def test_webhook(self):
442431
443432 def test_webhook_no_ssl (self ):
444433 print ('Testing Webhook without SSL' )
445- bot = MockBot ('' , messages = 0 )
446- self .updater .bot = bot
434+ self ._setup_updater ('' , messages = 0 )
447435 d = self .updater .dispatcher
448436 d .addTelegramMessageHandler (
449437 self .telegramHandlerTest )
@@ -485,7 +473,7 @@ def signalsender(self):
485473
486474 def test_idle (self ):
487475 print ('Testing idle' )
488- self .updater . bot = MockBot ('Test6' , messages = 0 )
476+ self ._setup_updater ('Test6' , messages = 0 )
489477 self .updater .start_polling (poll_interval = 0.01 )
490478 Thread (target = self .signalsender ).start ()
491479 self .updater .idle ()
@@ -494,6 +482,13 @@ def test_idle(self):
494482 self .updater .running = False
495483
496484
485+ def test_mutualExclusiveTokenBot (self ):
486+ bot = Bot ('123:zyxw' )
487+ self .assertRaises (ValueError , Updater , token = '123:abcd' , bot = bot )
488+
489+ def test_noTokenOrBot (self ):
490+ self .assertRaises (ValueError , Updater )
491+
497492class MockBot :
498493
499494 def __init__ (self , text , messages = 1 , raise_error = False ):
0 commit comments