diff --git a/telegram/ext/commandhandler.py b/telegram/ext/commandhandler.py index e0cc27aee..29834b3e2 100644 --- a/telegram/ext/commandhandler.py +++ b/telegram/ext/commandhandler.py @@ -86,9 +86,9 @@ class CommandHandler(Handler): _str = str # Python 3 if isinstance(command, _str): - self.command = [command] + self.command = [command.lower()] else: - self.command = command + self.command = [x.lower() for x in command] self.filters = filters self.allow_edited = allow_edited self.pass_args = pass_args @@ -117,7 +117,7 @@ class CommandHandler(Handler): else: res = self.filters(message) - return res and (message.text.startswith('/') and command[0] in self.command + return res and (message.text.startswith('/') and command[0].lower() in self.command and command[1].lower() == message.bot.username.lower()) else: return False diff --git a/tests/test_updater.py b/tests/test_updater.py index d1e3cb84c..5a97d00d8 100644 --- a/tests/test_updater.py +++ b/tests/test_updater.py @@ -271,6 +271,19 @@ class UpdaterTest(BaseTest, unittest.TestCase): sleep(.1) self.assertTrue(None is self.received_message) + # case insensitivity + self.reset() + message = Message(0, user, None, None, text="/Test", bot=bot) + queue.put(Update(update_id=0, message=message)) + sleep(.1) + self.assertTrue(self.received_message, '/Test') + handler = CommandHandler('Test', self.telegramHandlerTest) + self.updater.dispatcher.add_handler(handler) + message = Message(0, user, None, None, text="/test", bot=bot) + queue.put(Update(update_id=0, message=message)) + sleep(.1) + self.assertTrue(self.received_message, '/test') + # Remove handler d.remove_handler(handler) handler = CommandHandler('test', self.telegramHandlerEditedTest, allow_edited=False)