Beispiel #1
0
 def setUp(self):
     super(BaseTestCase, self).setUp()
     self.language = LanguageFactory(name='Python')
     # Mock github requests
     self.connectionMock = mock.Mock()
     connectionClass = mock.Mock()
     connectionClass.return_value = self.connectionMock
     Requester.injectConnectionClasses(connectionClass, connectionClass)
Beispiel #2
0
    def setup(self, request_environ=None):
        if request_environ is not None:
            self.config.set_request_environ({k: v for k, v in request_environ.iteritems()
                                             if k.startswith(Config.ENV_PREFIX)})

        log_file = self.config.get(DEFAULTSECT, "log_file")

        if log_file:
            if not os.path.exists(os.path.dirname(log_file)):
                os.makedirs(os.path.dirname(log_file))

            log.info(logging.root.handlers)
            del logging.root.handlers[:]
            logging.root.addHandler(FileHandler(log_file, 'a'))

        if self.config.get(DEFAULTSECT, "debug", False):
            log_level = logging.DEBUG
        else:
            log_level = self.config.get(DEFAULTSECT, 'log_level', 'INFO').upper()

        logging.root.setLevel(log_level)

        logging_config_file = self.config.get(DEFAULTSECT, "logging_config_file")
        if logging_config_file:
            fileConfig(logging_config_file, disable_existing_loggers=False)

        if self.config.get(DEFAULTSECT, "debug", False):
            keys = request_environ.keys()
            keys.sort()
            for key in keys:
                log.debug('%s: %s', key, repr(request_environ[key]))

        log.info('Starting Captain Hooks.')

        # Fix Github client to use the genvent concurrent HTTP client classes
        Requester.injectConnectionClasses(CachingHTTPConnection, CachingHTTPSConnection)

        self.__flask = Flask(__name__)

        services.get(DatabaseService).boot(self)
        services.get(WebHookEndpoint).boot(self)
        services.get(ApiEndpoint).boot(self)

        return self.__flask