コード例 #1
0
    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)
コード例 #2
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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)
コード例 #3
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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>")
コード例 #4
0
    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>")
コード例 #5
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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)
コード例 #6
0
    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)
コード例 #7
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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'.")
コード例 #8
0
    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'.")
コード例 #9
0
    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'!")
コード例 #10
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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'!")
コード例 #11
0
    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)
コード例 #12
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
 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)
コード例 #13
0
ファイル: test_admincommands.py プロジェクト: theHenks/ownbot
    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)
コード例 #14
0
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()
コード例 #15
0
ファイル: server.py プロジェクト: alinik/expense_share
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()
コード例 #16
0
                    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()