Skip to content

Commit 6a80a33

Browse files
committed
test for error on getUpdates and began to test webhook
1 parent 7c9928c commit 6a80a33

1 file changed

Lines changed: 42 additions & 3 deletions

File tree

tests/test_boteventhandler.py

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# along with this program. If not, see [http://www.gnu.org/licenses/].
1919

2020
""" This module contains a object that represents Tests for BotEventHandler """
21-
21+
import logging
2222
import unittest
2323
import sys
2424
from time import sleep
@@ -32,6 +32,16 @@
3232
from tests.base import BaseTest
3333
from threading import Lock
3434

35+
# Enable logging
36+
root = logging.getLogger()
37+
root.setLevel(logging.INFO)
38+
39+
ch = logging.StreamHandler(sys.stdout)
40+
ch.setLevel(logging.WARN)
41+
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
42+
ch.setFormatter(formatter)
43+
root.addHandler(ch)
44+
3545

3646
class BotEventHandlerTest(BaseTest, unittest.TestCase):
3747
"""This object represents Tests for Telegram Bot."""
@@ -153,6 +163,14 @@ def test_addErrorHandler(self):
153163
sleep(.1)
154164
self.assertEqual(self.received_message, error)
155165

166+
def test_errorOnGetUpdates(self):
167+
print('Testing errorOnGetUpdates')
168+
self.beh.bot = MockBot('', raise_error=True)
169+
self.beh.broadcaster.addErrorHandler(self.errorHandlerTest)
170+
self.beh.start_polling(0.05)
171+
sleep(.1)
172+
self.assertEqual(self.received_message.message, "Test Error")
173+
156174
def test_addTypeHandler(self):
157175
print('Testing addTypeHandler')
158176
self.beh.bot = MockBot('')
@@ -173,12 +191,31 @@ def test_runAsync(self):
173191
self.assertEqual(self.received_message, 'Test4')
174192
self.assertEqual(self.message_count, 2)
175193

194+
def test_webhook(self):
195+
""" Work in progress """
196+
print('Testing @run_async')
197+
self.beh.bot = MockBot('Test4', messages=2)
198+
self.beh.broadcaster.addTelegramMessageHandler(
199+
self.telegramHandlerTest)
200+
self.beh.start_webhook('127.0.0.1', 8000,
201+
'./tests/test_boteventhandler.py',
202+
'./tests/test_boteventhandler.py',
203+
listen='127.0.0.1')
204+
sleep(1)
205+
# Error is logged - run self.beh.httpd.serve_forever() in a separate
206+
# Thread here, then send a json-encrypted update via request.post()?
207+
208+
# self.assertEqual(self.received_message, 'Test4')
209+
self.assertEqual(self.message_count, 0)
210+
176211

177212
class MockBot:
178213

179-
def __init__(self, text, messages=1):
214+
def __init__(self, text, messages=1, raise_error=False):
180215
self.text = text
181216
self.send_messages = messages
217+
self.raise_error = raise_error
218+
self.token = "TOKEN"
182219
pass
183220

184221
def mockUpdate(self, text):
@@ -197,7 +234,9 @@ def getUpdates(self,
197234
timeout=0,
198235
network_delay=2.):
199236

200-
if self.send_messages >= 2:
237+
if self.raise_error:
238+
raise TelegramError('Test Error')
239+
elif self.send_messages >= 2:
201240
self.send_messages -= 2
202241
return self.mockUpdate(self.text), self.mockUpdate(self.text)
203242
elif self.send_messages == 1:

0 commit comments

Comments
 (0)