Esempio n. 1
0
    def test_discover_handler_classes_in_module(self):
        handler_classes = discover_handler_classes('tests.unit_tests.utils.test_handlers.handler')

        # discover handler class in handler
        self.assertIn(HandlerClass, handler_classes)
        self.assertIn(HandlerClass2, handler_classes)
        self.assertNotIn(NonRegisteredHandlerClass, handler_classes)
Esempio n. 2
0
    def start(self):
        """
        Try to init the main sub-components (:func:`~responsebot.utils.handler_utils.discover_handler_classes`, \
        :func:`~responsebot.utils.auth_utils.auth`, :class:`~responsebot.responsebot_stream.ResponseBotStream`, etc.)
        """
        logging.info('ResponseBot started')

        try:
            handler_classes = handler_utils.discover_handler_classes(self.config.get('handlers_package'))
            if len(handler_classes) == 0:
                logging.warning('No handler found. Did you forget to extend BaseTweethandler? Check --handlers-module')
        except ImportError as e:
            logging.error(str(e))
            sys.exit()

        while True:
            try:
                client = auth_utils.auth(self.config)

                listener = ResponseBotListener(client=client, handler_classes=handler_classes)

                stream = ResponseBotStream(client=client, listener=listener)
                stream.start()
            except (APIQuotaError, AuthenticationError, APIError) as e:
                self.handle_error(e)
            except UserHandlerError as e:
                logging.exception(e)
                sys.exit()
            else:
                break
    def test_discover_handler_classes_in_module(self):
        handler_classes = discover_handler_classes(
            'tests.unit_tests.utils.test_handlers.handler')

        # discover handler class in handler
        self.assertIn(HandlerClass, handler_classes)
        self.assertIn(HandlerClass2, handler_classes)
        self.assertNotIn(NonRegisteredHandlerClass, handler_classes)
Esempio n. 4
0
    def test_discover_handler_classes(self):
        handler_classes = discover_handler_classes('tests.unit_tests.utils.test_handlers')

        # discover handler class in package init
        self.assertIn(HandlerClassInInit, handler_classes)

        # discover handler class in handler
        self.assertIn(HandlerClass, handler_classes)
        self.assertIn(HandlerClass2, handler_classes)
        self.assertNotIn(NonRegisteredHandlerClass, handler_classes)

        # discover handler class in multiple modules
        self.assertIn(AnotherHandlerClass, handler_classes)
    def test_discover_handler_classes(self):
        handler_classes = discover_handler_classes(
            'tests.unit_tests.utils.test_handlers')

        # discover handler class in package init
        self.assertIn(HandlerClassInInit, handler_classes)

        # discover handler class in handler
        self.assertIn(HandlerClass, handler_classes)
        self.assertIn(HandlerClass2, handler_classes)
        self.assertNotIn(NonRegisteredHandlerClass, handler_classes)

        # discover handler class in multiple modules
        self.assertIn(AnotherHandlerClass, handler_classes)
Esempio n. 6
0
    def start(self):
        """
        Try to init the main sub-components (:func:`~responsebot.utils.handler_utils.discover_handler_classes`, \
        :func:`~responsebot.utils.auth_utils.auth`, :class:`~responsebot.responsebot_stream.ResponseBotStream`, etc.)
        """
        logging.info('ResponseBot started')

        try:
            handler_classes = handler_utils.discover_handler_classes(self.config.get('handlers_package'))
            if len(handler_classes) == 0:
                logging.warning('No handler found. Did you forget to extend BaseTweethandler? Check --handlers-module')
        except ImportError as e:
            logging.error(str(e))
            sys.exit()

        try:
            client = auth_utils.auth(
                consumer_key=self.config.get('consumer_key'),
                consumer_secret=self.config.get('consumer_secret'),
                token_key=self.config.get('token_key'),
                token_secret=self.config.get('token_secret'),
            )
        except (APIQuotaError, AuthenticationError) as e:
            logging.error(str(e))
            sys.exit()

        try:
            listener = ResponseBotListener(client=client, handler_classes=handler_classes)

            stream = ResponseBotStream(client=client, listener=listener)
            stream.start()
        except UserHandlerException as e:
            # TODO: print only stack trace from user exception
            logging.exception(e)
            sys.exit()
        except APIError as e:
            logging.error(str(e))
            sys.exit()
Esempio n. 7
0
    def start(self):
        """
        Try to init the main sub-components (:func:`~responsebot.utils.handler_utils.discover_handler_classes`, \
        :func:`~responsebot.utils.auth_utils.auth`, :class:`~responsebot.responsebot_stream.ResponseBotStream`, etc.)
        """
        logging.info('ResponseBot started')

        handler_classes = handler_utils.discover_handler_classes(self.config.get('handlers_package'))
        if len(handler_classes) == 0:
            logging.warning('No handler found. Did you forget to extend BaseTweethandler? Check --handlers-module')

        while True:
            try:
                client = auth_utils.auth(self.config)

                listener = ResponseBotListener(client=client, handler_classes=handler_classes)

                stream = ResponseBotStream(client=client, listener=listener)
                stream.start()
            except (APIQuotaError, AuthenticationError, TweepError) as e:
                self.handle_error(e)
            else:
                break