def test_admin_help(self): """ Test admin help command """ bot = Mock(spec=Bot) update = self.__get_dummy_update() AdminCommands._AdminCommands__admin_help( # pylint: disable=no-member, protected-access bot, update) self.assertTrue(bot.sendMessage.called)
def test_adduser_no_args(self): """ Test adduser command if the wrong number of args is passed """ bot = Mock(spec=Bot) update = self.__get_dummy_update() AdminCommands._AdminCommands__add_user( # pylint: disable=no-member, protected-access bot, update, []) bot.sendMessage.assert_called_with( chat_id=1, text="Usage: adduser <user> <group>")
def test_get_users_no_config(self): """ Test get users command if no users are registered """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: usrmgr_mock.return_value.config = {} AdminCommands._AdminCommands__get_users( # pylint: disable=no-member, protected-access bot, update) self.assertTrue(bot.sendMessage.called)
def test_adduser(self): """ Test adduser command """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: usrmgr_mock.return_value.add_user.return_value = True AdminCommands._AdminCommands__add_user( # pylint: disable=no-member, protected-access bot, update, ["@foouser", "foogroup"]) bot.sendMessage.assert_called_with( chat_id=1, text="Added user '@foouser' to the group 'foogroup'.")
def test_rmuser(self): """ Test rmuser command """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: usrmgr_mock.return_value.rm_user.return_value = True AdminCommands._AdminCommands__rm_user( # pylint: disable=no-member, protected-access bot, update, ["@foouser", "foogroup"]) bot.sendMessage.assert_called_with( chat_id=1, text="Removed user '@foouser' from the group 'foogroup'.")
def test_adduser_usr_already_in_grp(self): """ Test adduser command if user is already in group """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: usrmgr_mock.return_value.add_user.return_value = False AdminCommands._AdminCommands__add_user( # pylint: disable=no-member, protected-access bot, update, ["@foouser", "foogroup"]) bot.sendMessage.assert_called_with( chat_id=1, text="The user '@foouser' is already in the group 'foogroup'!")
def test_rmuser_usr_not_in_grp(self): """ Test rmuser command if user is not in group """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: usrmgr_mock.return_value.rm_user.return_value = False AdminCommands._AdminCommands__rm_user( # pylint: disable=no-member, protected-access bot, update, ["@foouser", "foogroup"]) bot.sendMessage.assert_called_with( chat_id=1, text="The user '@foouser' could not"\ " be found in the group 'foogroup'!")
def test_get_users(self): """ Test get users command """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: config = {"foogroup": {"users": [{"id": 1337, "username": "******"}], "unverified": ["@baruser"]}} usrmgr_mock.return_value.config = config AdminCommands._AdminCommands__get_users( # pylint: disable=no-member, protected-access bot, update) self.assertTrue(bot.sendMessage.called)
def test_init(self): """ Test init function of admincommands class """ with patch("ownbot.admincommands.UserManager"): dispatcher = Mock(spec=Dispatcher) AdminCommands(dispatcher) self.assertTrue(dispatcher.add_handler.called)
def test_get_users(self): """ Test get users command """ bot = Mock(spec=Bot) update = self.__get_dummy_update() with patch("ownbot.admincommands.UserManager") as usrmgr_mock: config = { "foogroup": { "users": [{ "id": 1337, "username": "******" }], "unverified": ["@baruser"] } } usrmgr_mock.return_value.config = config AdminCommands._AdminCommands__get_users( # pylint: disable=no-member, protected-access bot, update) self.assertTrue(bot.sendMessage.called)
def main(): """ Simple private telegram bot example. """ # Set up logging to log to stdout import logging logging.basicConfig( level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") updater = Updater(TOKEN) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler("start", start_handler)) # Enable admin commands for this bot AdminCommands(dispatcher) updater.start_polling() updater.idle()
def start_bot(token, admin_ids): updater = Updater(token) dp = updater.dispatcher AdminCommands(dp) conv_handler = ConversationHandler( entry_points=[ CommandHandler('start', start, pass_user_data=True), MessageHandler(Filters.all, bad_command, pass_user_data=True) ], states={ states.CHOOSING: [ RegexHandler('^(Show Result|%s)$' % _('Show Result'), show_result, pass_user_data=True), RegexHandler('^(Select Language|%s)' % _('Select Language'), choose_lang), RegexHandler('^(Lets Restart!|%s)$' % _('Lets Restart!'), reset, pass_user_data=True), RegexHandler('^(Add Member|%s)$' % _('Add Member'), add_member, pass_user_data=True), RegexHandler('^(Add Payment|%s)$' % _('Add Payment'), add_payment, pass_user_data=True), RegexHandler('^(List Transactions|%s)$' % _('List Transactions'), list_transactions, pass_user_data=True), MessageHandler(Filters.forwarded, report_msg) ], states.ADD_MEMBER: [ MessageHandler(Filters.text, add_member_cb, pass_user_data=True), MessageHandler(Filters.contact, add_member_cb, pass_user_data=True), ], states.ADD_PAYMENT: [ # MessageHandler(Filters.text, # get_amount, # pass_user_data=True), CallbackQueryHandler(choose_payee, pass_user_data=True), MessageHandler(Filters.all, bad_command, pass_user_data=True), ], states.ADD_PAYMENT_2: [ RegexHandler('^(Done|Cancel|%s|%s)$' % (_("Done"), _('Cancel')), submit_payment, pass_user_data=True), CallbackQueryHandler(choose_beneficiary, pass_user_data=True), MessageHandler(Filters.all, message, pass_user_data=True), ], states.CALCULATOR: [ CallbackQueryHandler(key_pressed, pass_user_data=True), MessageHandler(Filters.all, bad_command, pass_user_data=True), ], states.CHOOSE_LANG: [ CallbackQueryHandler(choose_lang_cb, pass_user_data=True), ] }, fallbacks=[ CommandHandler('reset', reset, pass_user_data=True), CommandHandler('lang', choose_lang), CommandHandler('start', start, pass_user_data=True), CommandHandler('help', show_help, pass_user_data=True), RegexHandler('^(Help|%s)$' % _('Help'), show_help, pass_user_data=True), MessageHandler(Filters.all, bad_command, pass_user_data=True), ]) dp.add_handler(conv_handler) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() welcome_admins(dp.bot, admin_ids) # Run the bot until the you presses Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle()
bevestigen, pass_user_data=True) ], S_BEVESTIGEN: [ RegexHandler('^(Ja|Nee|Weghalen)$', vraag_opmerking, pass_user_data=True) ], S_OPMERKING: [ RegexHandler('^(Ja|Nee)$', plaats_opmerking, pass_user_data=True) ], S_OPSLAAN: [MessageHandler(Filters.text, nu_opslaan, pass_user_data=True)] }, fallbacks=[CommandHandler('cancel', cancel)]) updater.dispatcher.add_handler(conv_handler) updater.dispatcher.add_handler( MessageHandler(Filters.text, logmessage, pass_job_queue=True, pass_chat_data=True)) updater.dispatcher.add_error_handler(error) AdminCommands(updater.dispatcher) updater.start_polling() updater.idle()