def __init__(self, *args, **kwargs): super(DummyRequest, self).__init__(*args, **kwargs) self.upath_info = '/v0/' self.registry = mock.MagicMock(settings=DEFAULT_SETTINGS.copy()) self.registry.id_generators = defaultdict(generators.UUID4) self.GET = {} self.headers = {} self.errors = cornice_errors.Errors(request=self) self.authenticated_userid = 'bob' self.authn_type = 'basicauth' self.prefixed_userid = 'basicauth:bob' self.effective_principals = [ self.prefixed_userid, 'system.Everyone', 'system.Authenticated' ] self.json = {} self.validated = {} self.matchdict = {} self.response = mock.MagicMock(headers={}) def route_url(*a, **kw): # XXX: refactor DummyRequest to take advantage of `pyramid.testing` parts = parse_url_overrides(kw) return ''.join([p for p in parts if p]) self.route_url = route_url
def initialize(config, version=None, project_name='', default_settings=None): """Initialize kinto.core with the given configuration, version and project name. This will basically include kinto.core in Pyramid and set route prefix based on the specified version. :param config: Pyramid configuration :type config: ~pyramid:pyramid.config.Configurator :param str version: Current project version (e.g. '0.0.1') if not defined in application settings. :param str project_name: Project name if not defined in application settings. :param dict default_settings: Override kinto.core default settings values. """ from kinto.core import DEFAULT_SETTINGS settings = config.get_settings() project_name = settings.pop('kinto.project_name', settings.get('project_name')) or project_name settings['project_name'] = project_name if not project_name: warnings.warn('No value specified for `project_name`') kinto_core_defaults = DEFAULT_SETTINGS.copy() if default_settings: kinto_core_defaults.update(default_settings) load_default_settings(config, kinto_core_defaults) http_scheme = settings['http_scheme'] if http_scheme != 'https': warnings.warn('HTTPS is not enabled') # Override project version from settings. project_version = settings.get('project_version') or version if not project_version: error_msg = "Invalid project version: %s" % project_version raise ConfigurationError(error_msg) settings['project_version'] = project_version = str(project_version) # HTTP API version. http_api_version = settings.get('http_api_version') if http_api_version is None: # The API version is derivated from the module version if not provided. http_api_version = '.'.join(project_version.split('.')[0:2]) settings['http_api_version'] = http_api_version = str(http_api_version) api_version = 'v%s' % http_api_version.split('.')[0] # Include kinto.core views with the correct api version prefix. config.include("kinto.core", route_prefix=api_version) config.route_prefix = api_version
def get_app_settings(self, additional_settings=None): settings = DEFAULT_SETTINGS.copy() settings['storage_backend'] = 'kinto.core.storage.redis' settings['cache_backend'] = 'kinto.core.cache.redis' settings['permission_backend'] = 'kinto.core.permission.redis' settings['project_name'] = 'myapp' settings['project_version'] = '0.0.1' settings['project_docs'] = 'https://kinto.rtfd.org/' settings['multiauth.authorization_policy'] = self.authorization_policy if additional_settings is not None: settings.update(additional_settings) return settings
def get_app_settings(self, extras=None): """Application settings to be used. Override to tweak default settings for the tests. :param dict extras: extra settings values :rtype: dict """ settings = DEFAULT_SETTINGS.copy() settings['storage_backend'] = 'kinto.core.storage.memory' settings['cache_backend'] = 'kinto.core.cache.memory' settings['permission_backend'] = 'kinto.core.permission.memory' if extras is not None: settings.update(extras) return settings
def __init__(self, *args, **kwargs): super(DummyRequest, self).__init__(*args, **kwargs) self.upath_info = '/v0/' self.registry = mock.MagicMock(settings=DEFAULT_SETTINGS.copy()) self.registry.id_generators = defaultdict(generators.UUID4) self.GET = {} self.headers = {} self.errors = cornice_errors.Errors(request=self) self.authenticated_userid = 'bob' self.authn_type = 'basicauth' self.prefixed_userid = 'basicauth:bob' self.json = {} self.validated = {} self.matchdict = {} self.response = mock.MagicMock(headers={}) def route_url(*a, **kw): # XXX: refactor DummyRequest to take advantage of `pyramid.testing` parts = parse_url_overrides(kw) return ''.join([p for p in parts if p]) self.route_url = route_url