def test_directed_commands(self, message): handler = CommandHandler('test', self.callback_basic) message.text = '/test@{}'.format(message.bot.username) assert handler.check_update(Update(0, message)) message.text = '/test@otherbot' assert not handler.check_update(Update(0, message))
def test_edited(self, message): handler = CommandHandler('test', self.callback_basic, allow_edited=False) message.text = '/test' assert handler.check_update(Update(0, message)) assert not handler.check_update(Update(0, edited_message=message)) handler.allow_edited = True assert handler.check_update(Update(0, message)) assert handler.check_update(Update(0, edited_message=message))
def test_with_filter(self, message): handler = CommandHandler('test', self.callback_basic, Filters.group) message.chat = Chat(-23, 'group') message.text = '/test' assert handler.check_update(Update(0, message)) message.chat = Chat(23, 'private') assert not handler.check_update(Update(0, message))
def test_command_list(self, message): handler = CommandHandler(['test', 'start'], self.callback_basic) message.text = '/test' assert handler.check_update(Update(0, message)) message.text = '/start' assert handler.check_update(Update(0, message)) message.text = '/stop' assert not handler.check_update(Update(0, message))
def test_no_edited(self, message): handler = CommandHandler('test', self.callback_basic) message.text = '/test' check = handler.check_update(Update(0, message)) assert check is not None and check is not False check = handler.check_update(Update(0, edited_message=message)) assert check is not None and check is not False handler = CommandHandler('test', self.callback_basic, filters=~Filters.update.edited_message) check = handler.check_update(Update(0, message)) assert check is not None and check is not False check = handler.check_update(Update(0, edited_message=message)) assert check is None or check is False
def test_single_char(self, dp, message): # Regression test for https://github.com/python-telegram-bot/python-telegram-bot/issues/871 handler = CommandHandler('test', self.callback_basic) dp.add_handler(handler) message.text = 'a' assert not handler.check_update(Update(0, message))
def test_single_slash(self, dp, message): # Regression test for https://github.com/python-telegram-bot/python-telegram-bot/issues/871 handler = CommandHandler('test', self.callback_basic) dp.add_handler(handler) message.text = '/' assert not handler.check_update(Update(0, message))
def test_edited_deprecated(self, message): handler = CommandHandler('test', self.callback_basic, allow_edited=False) message.text = '/test' check = handler.check_update(Update(0, message)) assert check is not None and check is not False check = handler.check_update(Update(0, edited_message=message)) assert check is None or check is False handler = CommandHandler('test', self.callback_basic, allow_edited=True) check = handler.check_update(Update(0, message)) assert check is not None and check is not False check = handler.check_update(Update(0, edited_message=message)) assert check is not None and check is not False
def test_basic(self, dp, message): handler = CommandHandler('test', self.callback_basic) dp.add_handler(handler) message.text = '/test' assert handler.check_update(Update(0, message)) dp.process_update(Update(0, message)) assert self.test_flag message.text = '/nottest' assert not handler.check_update(Update(0, message)) message.text = 'test' assert not handler.check_update(Update(0, message)) message.text = 'not /test at start' assert not handler.check_update(Update(0, message))
def test_newline(self, dp, message): handler = CommandHandler('test', self.callback_basic) dp.add_handler(handler) message.text = '/test\nfoobar' assert handler.check_update(Update(0, message)) dp.process_update(Update(0, message)) assert self.test_flag
def test_filters_for_wrong_command(self, message): """Filters should not be executed if the command does not match the handler""" class TestFilter(BaseFilter): def __init__(self): self.tested = False def filter(self, message): self.tested = True test_filter = TestFilter() handler = CommandHandler('foo', self.callback_basic, filters=test_filter) message.text = '/bar' handler.check_update(Update(0, message=message)) assert not test_filter.tested
def test_basic(self, dp, message): handler = CommandHandler('test', self.callback_basic) dp.add_handler(handler) message.text = '/test' dp.process_update(Update(0, message)) assert self.test_flag message.text = '/nottest' check = handler.check_update(Update(0, message)) assert check is None or check is False message.text = 'test' check = handler.check_update(Update(0, message)) assert check is None or check is False message.text = 'not /test at start' check = handler.check_update(Update(0, message)) assert check is None or check is False message.entities = [] message.text = '/test' check = handler.check_update(Update(0, message)) assert check is None or check is False
def test_other_update_types(self, false_update): handler = CommandHandler('test', self.callback_basic) check = handler.check_update(false_update) assert check is None or check is False
def test_other_update_types(self, false_update): handler = CommandHandler('test', self.callback_basic) assert not handler.check_update(false_update)