X Tutup
Skip to content

Commit 561f1c3

Browse files
committed
bot: validate token does not contain white spaces (python-telegram-bot#306)
in addition move validation code from validate.py into bot.py and delete the former file
1 parent 86571bc commit 561f1c3

File tree

3 files changed

+20
-33
lines changed

3 files changed

+20
-33
lines changed

telegram/bot.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
from telegram import (User, Message, Update, UserProfilePhotos, File, ReplyMarkup, TelegramObject,
2626
NullHandler)
27+
from telegram.error import InvalidToken
2728
from telegram.utils import request
28-
from telegram.utils.validate import validate_token
2929

3030
logging.getLogger(__name__).addHandler(NullHandler())
3131

@@ -48,7 +48,7 @@ class Bot(TelegramObject):
4848
"""
4949

5050
def __init__(self, token, base_url=None, base_file_url=None):
51-
self.token = validate_token(token)
51+
self.token = self._validate_token(token)
5252

5353
if not base_url:
5454
self.base_url = 'https://api.telegram.org/bot{0}'.format(self.token)
@@ -64,6 +64,18 @@ def __init__(self, token, base_url=None, base_file_url=None):
6464

6565
self.logger = logging.getLogger(__name__)
6666

67+
@staticmethod
68+
def _validate_token(token):
69+
"""a very basic validation on token"""
70+
if any(x.isspace() for x in token):
71+
raise InvalidToken()
72+
73+
left, sep, _right = token.partition(':')
74+
if (not sep) or (not left.isdigit()) or (len(left) < 3):
75+
raise InvalidToken()
76+
77+
return token
78+
6779
def info(func):
6880

6981
@functools.wraps(func)

telegram/utils/validate.py

Lines changed: 0 additions & 29 deletions
This file was deleted.

tests/test_bot.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,12 @@ def testInvalidToken2(self):
192192
def testInvalidToken3(self):
193193
self._test_invalid_token('12:')
194194

195-
# def testInvalidToken4(self):
196-
# self._test_invalid_token('1234:abcd1234\n')
195+
def testInvalidToken4(self):
196+
# white spaces are invalid
197+
self._test_invalid_token('1234:abcd1234\n')
198+
self._test_invalid_token(' 1234:abcd1234')
199+
self._test_invalid_token(' 1234:abcd1234\r')
200+
self._test_invalid_token('1234:abcd 1234')
197201

198202
def testUnauthToken(self):
199203
with self.assertRaisesRegexp(telegram.error.Unauthorized, 'Unauthorized'):

0 commit comments

Comments
 (0)
X Tutup