Exemple #1
0
def wsgi_apps():
    """Wsgi app fixture."""
    from invenio_base.wsgi import create_wsgi_factory, wsgi_proxyfix
    from invenio_base.app import create_app_factory

    def _config(app, **kwargs):
        app.config.update(SECRET_KEY='SECRET_KEY',
                          TESTING=True,
                          APP_DEFAULT_SECURE_HEADERS=dict(force_https=False, ))

    # API
    create_api = create_app_factory(
        'invenio',
        config_loader=_config,
        wsgi_factory=wsgi_proxyfix(),
    )
    # UI
    create_ui = create_app_factory(
        'invenio',
        config_loader=_config,
        wsgi_factory=wsgi_proxyfix(),
    )
    # Combined
    create_app = create_app_factory(
        'invenio',
        config_loader=_config,
        wsgi_factory=wsgi_proxyfix(create_wsgi_factory({'/api': create_api})),
    )
    return create_app, create_ui, create_api
Exemple #2
0
def test_create_app_factory_wsgi_factory():
    """Test app factory wsgi factory."""
    def _wsgi_factory(app):
        return DispatcherMiddleware(app.wsgi_app, {'/test': Flask('dispatch')})

    create_app = create_app_factory('test', wsgi_factory=_wsgi_factory)
    app = create_app()
    assert isinstance(app.wsgi_app, DispatcherMiddleware)
Exemple #3
0
def test_callable_static_path(tmppath):
    """Test static path evaluation."""
    def static_folder():
        return join(tmppath, 'teststatic')

    app = create_app_factory('test', static_folder=static_folder)()
    assert app.static_folder == join(tmppath, 'teststatic')
    assert app.instance_path is not None
Exemple #4
0
def test_callable_instance_path(tmppath):
    """Test instance path evaluation."""
    def instance_path():
        return tmppath

    app = create_app_factory('test', instance_path=instance_path)()
    assert app.instance_path == tmppath
    assert app.static_folder is None
Exemple #5
0
def test_create_app_factory_wsgi_factory():
    """Test app factory wsgi factory."""
    def _wsgi_factory(app):
        return DispatcherMiddleware(app.wsgi_app, {'/test': Flask('dispatch')})

    create_app = create_app_factory('test', wsgi_factory=_wsgi_factory)
    app = create_app()
    assert isinstance(app.wsgi_app, DispatcherMiddleware)
Exemple #6
0
def test_create_app_factory_config_loader():
    """Test app factory conf loader."""
    def _config_loader(app, **kwargs):
        app.config['CONFIG_LOADER'] = True
        app.config.update(kwargs)

    create_app = create_app_factory('test', config_loader=_config_loader)
    app = create_app(KWARGS_TEST=True)
    assert app.config['CONFIG_LOADER']
    assert app.config['KWARGS_TEST']
Exemple #7
0
def test_create_app_factory_config_loader():
    """Test app factory conf loader."""
    def _config_loader(app, **kwargs):
        app.config['CONFIG_LOADER'] = True
        app.config.update(kwargs)

    create_app = create_app_factory('test', config_loader=_config_loader)
    app = create_app(KWARGS_TEST=True)
    assert app.config['CONFIG_LOADER']
    assert app.config['KWARGS_TEST']
Exemple #8
0
def create_api(*args, **kwargs):
    app = create_app_factory(
        'b2share',
        config_loader=config_loader,
        extension_entry_points=['invenio_base.api_apps'],
        blueprint_entry_points=['invenio_base.api_blueprints'],
        converter_entry_points=['invenio_base.api_converters'],
        instance_path=instance_path,
    )(*args, **kwargs)
    return app
Exemple #9
0
def create_api(*args, **kwargs):
    app = create_app_factory(
        'b2share',
        config_loader=config_loader,
        extension_entry_points=['invenio_base.api_apps'],
        blueprint_entry_points=['invenio_base.api_blueprints'],
        converter_entry_points=['invenio_base.api_converters'],
        instance_path=instance_path,
    )(*args, **kwargs)
    return app
Exemple #10
0
def create_api(*args, **kwargs):
    """Create Flask application providing B2SHARE REST API."""
    app = create_app_factory(
        'b2share',
        config_loader=config_loader,
        extension_entry_points=['invenio_base.api_apps'],
        blueprint_entry_points=['invenio_base.api_blueprints'],
        converter_entry_points=['invenio_base.api_converters'],
        instance_path=instance_path,
    )(*args, **kwargs)
    return app
Exemple #11
0
def test_migrate_secret_key():
    """Test cli command for SECRET_KEY change."""
    def _config_loader(app, **kwargs):
        app.config['CONFIG_LOADER'] = True
        app.config.update(kwargs)

    create_app = create_app_factory('test', config_loader=_config_loader)
    app = create_app(KWARGS_TEST=True)
    script_info = ScriptInfo(create_app=lambda info: app)

    # Check that CLI command fails when the SECRET_KEY is not set.
    with app.app_context():
        runner = CliRunner()
        result = runner.invoke(instance,
                               ['migrate_secret_key',
                                '--old-key',
                                'OLD_SECRET_KEY'],
                               obj=script_info)
        assert result.exit_code == 1
        assert 'Error: SECRET_KEY is not set in the configuration.' in \
            result.output

    app.secret_key = "SECRET"
    with patch('pkg_resources.EntryPoint') as MockEntryPoint:
        # Test that the CLI command succeeds when the entrypoint does
        # return a function.
        entrypoint = MockEntryPoint('ep1', 'ep1')
        entrypoint.load.return_value = MagicMock()
        with patch('invenio_base.cli.iter_entry_points',
                   return_value=[entrypoint]):
            result = runner.invoke(
                instance, ['migrate_secret_key', '--old-key',
                           'OLD_SECRET_KEY'],
                obj=script_info)
            assert result.exit_code == 0
            assert entrypoint.load.called
            entrypoint.load.return_value.assert_called_with(
                old_key='OLD_SECRET_KEY'
            )
            assert 'Successfully changed secret key.' in result.output

        # Test that the CLI command fails correctly when the entrypoint does
        # not return a function.
        entrypoint = MockEntryPoint('ep2', 'ep2')
        entrypoint.load.return_value = 'ep2'
        with patch('invenio_base.cli.iter_entry_points',
                   return_value=[entrypoint]):
            result = runner.invoke(
                instance, ['migrate_secret_key', '--old-key',
                           'OLD_SECRET_KEY'],
                obj=script_info)
            assert result.exit_code == -1
            assert entrypoint.load.called
            assert 'Failed to initialize entry point' in result.output
def test_migrate_secret_key():
    """Test cli command for SECRET_KEY change."""
    def _config_loader(app, **kwargs):
        app.config["CONFIG_LOADER"] = True
        app.config.update(kwargs)

    create_app = create_app_factory("test", config_loader=_config_loader)
    app = create_app(KWARGS_TEST=True)

    # Check that CLI command fails when the SECRET_KEY is not set.
    runner = app.test_cli_runner()
    result = runner.invoke(
        instance, ["migrate-secret-key", "--old-key", "OLD_SECRET_KEY"])
    assert result.exit_code == 1
    assert "Error: SECRET_KEY is not set in the configuration." in result.output

    app.secret_key = "SECRET"
    with patch("importlib_metadata.entry_points") as MockEP:
        # Test that the CLI command succeeds when the entrypoint does
        # return a function.
        entrypoint = MockEP("ep1", "ep1", "ep1")
        entrypoint.load.return_value = MagicMock()
        with patch(
                "importlib_metadata.entry_points",
                return_value={"invenio_base.secret_key": [entrypoint]},
        ):
            result = runner.invoke(
                instance,
                ["migrate-secret-key", "--old-key", "OLD_SECRET_KEY"])
            assert result.exit_code == 0
            assert entrypoint.load.called
            entrypoint.load.return_value.assert_called_with(
                old_key="OLD_SECRET_KEY")
            assert "Successfully changed secret key." in result.output

        # Test that the CLI command fails correctly when the entrypoint does
        # not return a function.
        entrypoint = MockEP("ep2", "ep2", "ep2")
        entrypoint.load.return_value = "ep2"
        with patch("importlib_metadata.entry_points",
                   return_value={"ep2": [entrypoint]}):
            result = runner.invoke(
                instance,
                ["migrate-secret-key", "--old-key", "OLD_SECRET_KEY"])
            assert result.exit_code == 1
            assert entrypoint.load.called
            assert "Failed to perform migration of secret key" in result.output
Exemple #13
0
def test_create_cli_with_app():
    """Test create cli."""
    app_name = 'mycmdtest'
    create_app = create_app_factory(app_name)
    cli = create_cli(create_app=create_app)

    @cli.command()
    def test_cmd():
        click.echo('{0} {1}'.format(current_app.name, current_app.debug))

    runner = CliRunner()
    result = runner.invoke(cli)
    assert result.exit_code == 0

    result = runner.invoke(cli, ['test_cmd'])
    assert result.exit_code == 0
    assert u'{0} False\n'.format(app_name) in result.output
Exemple #14
0
def test_create_cli_with_app():
    """Test create cli."""
    app_name = 'mycmdtest'
    create_app = create_app_factory(app_name)
    cli = create_cli(create_app=create_app)

    @cli.command()
    def test_cmd():
        click.echo('{0} {1}'.format(current_app.name, current_app.debug))

    runner = CliRunner()
    result = runner.invoke(cli)
    assert result.exit_code == 0

    result = runner.invoke(cli, ['test-cmd'])
    assert result.exit_code == 0
    assert u'{0} False\n'.format(app_name) in result.output
Exemple #15
0
def test_create_app_factory():
    """Test app factory factory."""
    class FlaskExt(object):
        def __init__(self, app):
            self.app = app
            app.extensions['ext'] = self

    bp = Blueprint('test', 'test')

    # Create app
    create_app = create_app_factory(
        'test', blueprints=[bp], extensions=[FlaskExt])
    assert callable(create_app)

    app = create_app()
    assert app.name == 'test'
    assert len(app.blueprints) == 1
    assert 'ext' in app.extensions
Exemple #16
0
def test_create_app_factory():
    """Test app factory factory."""
    class FlaskExt(object):
        def __init__(self, app):
            self.app = app
            app.extensions['ext'] = self

    bp = Blueprint('test', 'test')

    # Create app
    create_app = create_app_factory(
        'test', blueprints=[bp], extensions=[FlaskExt])
    assert callable(create_app)

    app = create_app()
    assert app.name == 'test'
    assert len(app.blueprints) == 1
    assert 'ext' in app.extensions
Exemple #17
0
def test_create_app_factory():
    """Test signals sending."""
    calls = {'created': 0, 'loaded': 0}
    create_app = create_app_factory('test')

    def _receiver(name):
        def _inner(sender, app=None):
            calls[name] += 1
            calls['{}_app'.format(name)] = app
        return _inner

    app_created.connect(_receiver('created'), sender=create_app, weak=False)
    app_loaded.connect(_receiver('loaded'), sender=create_app, weak=False)

    assert callable(create_app)

    app = create_app()
    assert calls['created'] == 1
    assert calls['loaded'] == 1
    assert calls['created_app'] is app
    assert calls['loaded_app'] is app
def test_create_app_factory():
    """Test signals sending."""
    calls = {"created": 0, "loaded": 0}
    create_app = create_app_factory("test")

    def _receiver(name):
        def _inner(sender, app=None):
            calls[name] += 1
            calls[f"{name}_app"] = app

        return _inner

    app_created.connect(_receiver("created"), sender=create_app, weak=False)
    app_loaded.connect(_receiver("loaded"), sender=create_app, weak=False)

    assert callable(create_app)

    app = create_app()
    assert calls["created"] == 1
    assert calls["loaded"] == 1
    assert calls["created_app"] is app
    assert calls["loaded_app"] is app
Exemple #19
0
def config_loader(app, **kwargs_config):
    """Add loading templates."""
    local_templates_path = os.path.join(app.instance_path, 'templates')
    if os.path.exists(local_templates_path):
        app.jinja_loader = ChoiceLoader([
            FileSystemLoader(local_templates_path),
            app.jinja_loader,
        ])

    app.jinja_options = dict(
        app.jinja_options,
        cache_size=1000,
        bytecode_cache=BytecodeCache(app)
    )

    app.url_map.strict_slashes = False
    invenio_config_loader(app, **kwargs_config)


create_api = create_app_factory(
    'invenio',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    wsgi_factory=wsgi_proxyfix(),
    instance_path=instance_path,
    app_class=app_class(),
)
Exemple #20
0
Defaults to ``<env_prefix>_INSTANCE_PATH`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    '{{ cookiecutter.package_name }}',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
)

create_app = create_app_factory(
    '{{ cookiecutter.package_name }}',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.blueprints'],
    extension_entry_points=['invenio_base.apps'],
    converter_entry_points=['invenio_base.converters'],
    wsgi_factory=create_wsgi_factory({'/api': create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    'cap',
    config_loader=conf_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],

    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
    static_folder=static_folder,
)


create_app = create_app_factory(
    'cap',
    config_loader=conf_loader,
    blueprint_entry_points=['invenio_base.blueprints'],
    extension_entry_points=['invenio_base.apps'],
    instance_path=instance_path,
    static_folder=static_folder,
)
Exemple #22
0
# -*- coding: utf-8 -*-

"""Mysite Invenio API application."""

from invenio_base.app import create_app_factory
from invenio_base.wsgi import create_wsgi_factory
from invenio_config import default_conf_loader

from . import config

env_prefix = 'APP'

create_api = create_app_factory(
    'mysite-api',
    env_prefix=env_prefix,
    config_loader=default_conf_loader(config, env_prefix=env_prefix),
    bp_entry_point='invenio_base.api_blueprints',
    ext_entry_point='invenio_base.api_apps',
)


create_app = create_app_factory(
    'mysite-app',
    env_prefix=env_prefix,
    config_loader=default_conf_loader(config, env_prefix=env_prefix),
    bp_entry_point='invenio_base.blueprints',
    ext_entry_point='invenio_base.apps',
    wsgi_factory=create_wsgi_factory({'/api': create_api})
)
Exemple #23
0
from inspire_hal.cli import hal
from inspire_hal import config

env_prefix = 'APP'


def config_loader(app, **kwargs_config):
    invenio_config_loader = create_config_loader(config=config,
                                                 env_prefix=env_prefix)
    result = invenio_config_loader(app, **kwargs_config)
    app.url_map.strict_slashes = False
    app.cli.add_command(hal)
    return result


instance_path = os.getenv(env_prefix + '_INSTANCE_PATH') or \
    os.path.join(sys.prefix, 'var', 'inspirehal-instance')
"""Instance path for Invenio.

Defaults to ``<env_prefix>_INSTANCE_PATH`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance``.
"""

create_app = create_app_factory(
    'inspire_hal',
    config_loader=config_loader,
    extension_entry_points=['invenio_base.apps'],
    instance_path=instance_path,
)
Exemple #24
0
Defaults to ``<virtualenv>/var/instance/``. Can be overwritten using the
environment variable ``APP_INSTANCE_PATH``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Path to static folder.

Defaults to ``<virtualenv>/var/instance/static/``. Can be overwritten
using the environment variable ``APP_STATIC_FOLDER``
"""

create_api = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.api_apps'],
    blueprint_entry_points=['invenio_base.api_blueprints'],
    instance_path=instance_path,
)
"""Create Flask API application."""

create_app = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.apps'],
    blueprint_entry_points=['invenio_base.blueprints'],
    wsgi_factory=create_wsgi_factory({'/api': create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
"""Create Flask UI application."""
Exemple #25
0
Defaults to ``<env_prefix>_INSTANCE_PATH`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    'scoap3',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
)


create_app = create_app_factory(
    'scoap3',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.blueprints'],
    extension_entry_points=['invenio_base.apps'],
    converter_entry_points=['invenio_base.converters'],
    wsgi_factory=create_wsgi_factory({'/api': create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
Exemple #26
0
    # Add Host header validation via APP_ALLOWED_HOSTS configuration variable.
    class Request(TrustedHostsMixin, FlaskBase.request_class):
        pass

    class Flask(FlaskBase):
        request_class = Request

    return Flask


create_api = create_app_factory(
    'invenio',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    wsgi_factory=wsgi_proxyfix(),
    instance_path=instance_path,
    root_path=instance_path,
    app_class=app_class(),
)
"""Flask application factory for Invenio REST API."""

create_ui = create_app_factory(
    'invenio',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.blueprints'],
    extension_entry_points=['invenio_base.apps'],
    converter_entry_points=['invenio_base.converters'],
    wsgi_factory=wsgi_proxyfix(),
    instance_path=instance_path,
Exemple #27
0
    """Static folder path.

    Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
    set ``<sys.prefix>/var/<app_name>-instance/static``.
    """
    return os.getenv(env_prefix + "_STATIC_FOLDER") or os.path.join(
        instance_path(), "static")


# sphinxdoc-example-paths-end

# sphinxdoc-example-factories-begin
create_api = create_app_factory(
    "example",
    config_loader=config_loader,
    blueprint_entry_points=["invenio_base.api_blueprints"],
    extension_entry_points=["invenio_base.api_apps"],
    converter_entry_points=["invenio_base.api_converters"],
    instance_path=instance_path,
)

create_app = create_app_factory(
    "example",
    config_loader=config_loader,
    blueprint_entry_points=["invenio_base.blueprints"],
    extension_entry_points=["invenio_base.apps"],
    converter_entry_points=["invenio_base.converters"],
    wsgi_factory=create_wsgi_factory({"/api": create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
# sphinxdoc-example-factories-end
Defaults to ``<env_prefix>_INSTANCE_PATH`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    'cernopendata',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
)

create_app = create_app_factory(
    'cernopendata',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.blueprints'],
    extension_entry_points=['invenio_base.apps'],
    converter_entry_points=['invenio_base.converters'],
    wsgi_factory=create_wsgi_factory({'/api': create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    'cap',
    config_loader=conf_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
    static_folder=static_folder,
)


# create_app = create_app_factory(
#     'cap',
#     config_loader=conf_loader,
#     blueprint_entry_points=['invenio_base.blueprints'],
#     extension_entry_points=['invenio_base.apps'],
#     instance_path=instance_path,
#     static_folder=static_folder,
# )
        port = app.config.get('STATSD_PORT', 8125)
        prefix = app.config.get('STATSD_PREFIX')

        if host and port and prefix:
            client = StatsClient(prefix=prefix, host=host, port=port)
            return StatsdTimingMiddleware(application, client)
        return application

    return create_wsgi


create_celery = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.apps'],
    blueprint_entry_points=['invenio_base.blueprints'],
    converter_entry_points=['invenio_base.converters'],
    instance_path=instance_path,
    static_folder=static_folder,
)
"""Create CLI/Celery application."""

create_api = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.api_apps'],
    blueprint_entry_points=['invenio_base.api_blueprints'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
    app_class=Flask,
)
Exemple #31
0
Defaults to ``<virtualenv>/var/zenodo-instance/``. Can be overwritten using the
environment variable ``APP_INSTANCE_PATH``.
"""

static_folder = os.getenv(env_prefix + "_STATIC_FOLDER") or os.path.join(instance_path, "static")
"""Path to static folder.

Defaults to ``<virtualenv>/var/zenodo-instance/static/``. Can be overwritten
using the environment variable ``APP_STATIC_FOLDER``
"""


create_api = create_app_factory(
    "zenodo",
    config_loader=conf_loader,
    extension_entry_points=["invenio_base.api_apps"],
    blueprint_entry_points=["invenio_base.api_blueprints"],
    instance_path=instance_path,
)
"""Create Flask API application."""

create_app = create_app_factory(
    "zenodo",
    config_loader=conf_loader,
    extension_entry_points=["invenio_base.apps"],
    blueprint_entry_points=["invenio_base.blueprints"],
    wsgi_factory=create_wsgi_factory({"/api": create_api}),
    instance_path=instance_path,
    static_folder=static_folder,
)
"""Create Flask UI application."""
Exemple #32
0
env_prefix = "INVENIO"


def config_loader(app, **kwargs_config):
    invenio_config_loader = create_config_loader(config=config, env_prefix=env_prefix)
    result = invenio_config_loader(app, **kwargs_config)
    app.url_map.strict_slashes = False
    return result


create_api = create_app_factory(
    "inspirehep_api",
    config_loader=config_loader,
    blueprint_entry_points=["invenio_base.api_blueprints"],
    extension_entry_points=["invenio_base.api_apps"],
    converter_entry_points=["invenio_base.api_converters"],
    wsgi_factory=wsgi_proxyfix(),
    instance_path=instance_path,
    app_class=app_class(),
)
"""Flask application factory for Invenio REST API."""


create_app = create_app_factory(
    "inspirehep",
    config_loader=config_loader,
    blueprint_entry_points=["invenio_base.api_blueprints"],
    extension_entry_points=["invenio_base.api_apps"],
    converter_entry_points=["invenio_base.api_converters"],
    wsgi_factory=create_wsgi_factory({"/api": create_api}),
    instance_path=instance_path,
Exemple #33
0
        host = app.config.get('STATSD_HOST')
        port = app.config.get('STATSD_PORT', 8125)
        prefix = app.config.get('STATSD_PREFIX')

        if host and port and prefix:
            client = StatsClient(prefix=prefix, host=host, port=port)
            return StatsdTimingMiddleware(application, client)
        return application
    return create_wsgi


create_celery = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.apps'],
    blueprint_entry_points=['invenio_base.blueprints'],
    converter_entry_points=['invenio_base.converters'],
    instance_path=instance_path,
    static_folder=static_folder,
)
"""Create CLI/Celery application."""

create_api = create_app_factory(
    'zenodo',
    config_loader=conf_loader,
    extension_entry_points=['invenio_base.api_apps'],
    blueprint_entry_points=['invenio_base.api_blueprints'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
)
"""Create Flask API application."""
Exemple #34
0
def test_create_app_debug_flag():
    """Test debug flag propagation (needed by CLI)."""
    create_app = create_app_factory('test')

    assert create_app().debug is False
    assert create_app(debug=True).debug is True
    local_templates_path = os.path.join(app.instance_path, 'templates')
    if os.path.exists(local_templates_path):
        # Let's customize the template loader to look into packages
        # and application templates folders.
        app.jinja_loader = ChoiceLoader([
            FileSystemLoader(local_templates_path),
            app.jinja_loader,
        ])

    app.jinja_options = dict(
        app.jinja_options,
        cache_size=1000,
        bytecode_cache=BytecodeCache(app)
    )

    app.url_map.strict_slashes = False
    invenio_config_loader(app, **kwargs_config)


create_api = create_app_factory(
    'invenio',
    config_loader=config_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    wsgi_factory=wsgi_proxyfix(),
    instance_path=instance_path,
    app_class=app_class(),
)
"""Flask application factory for Invenio REST API."""
set ``<sys.prefix>/var/<app_name>-instance``.
"""

static_folder = os.getenv(env_prefix + '_STATIC_FOLDER') or \
    os.path.join(instance_path, 'static')
"""Static folder path.

Defaults to ``<env_prefix>_STATIC_FOLDER`` or if environment variable is not
set ``<sys.prefix>/var/<app_name>-instance/static``.
"""

create_api = create_app_factory(
    'cap',
    config_loader=conf_loader,
    blueprint_entry_points=['invenio_base.api_blueprints'],
    extension_entry_points=['invenio_base.api_apps'],
    converter_entry_points=['invenio_base.api_converters'],
    instance_path=instance_path,
    static_folder=static_folder,
)

# create_app = create_app_factory(
#     'cap',
#     config_loader=conf_loader,
#     blueprint_entry_points=['invenio_base.blueprints'],
#     extension_entry_points=['invenio_base.apps'],
#     instance_path=instance_path,
#     static_folder=static_folder,
# )

create_front = create_app_factory(