def base_app(request):
    """Flask application fixture."""
    instance_path = tempfile.mkdtemp()
    app = Flask('testapp', instance_path=instance_path)
    app.config.update(
        ACCOUNTS_USE_CELERY=False,
        CELERY_ALWAYS_EAGER=True,
        CELERY_CACHE_BACKEND="memory",
        CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
        CELERY_RESULT_BACKEND="cache",
        LOGIN_DISABLED=False,
        MAIL_SUPPRESS_SEND=True,
        SECRET_KEY="CHANGE_ME",
        SECURITY_PASSWORD_SALT="CHANGE_ME_ALSO",
        SECURITY_CONFIRM_EMAIL_WITHIN="2 seconds",
        SECURITY_RESET_PASSWORD_WITHIN="2 seconds",
        DB_VERSIONING=False,
        DB_VERSIONING_USER_MODEL=None,
        SQLALCHEMY_DATABASE_URI=os.environ.get('SQLALCHEMY_DATABASE_URI',
                                               'sqlite:///test.db'),
        SQLALCHEMY_TRACK_MODIFICATIONS=False,
        SERVER_NAME='localhost:5000',
        TESTING=True,
        WTF_CSRF_ENABLED=False,
        CACHE_REDIS_URL='redis://localhost:6379/0',
        SIP2_DATASTORE_HANDLER='invenio_sip2.datastore:Sip2RedisDatastore',
        SIP2_DATASTORE_REDIS_URL='redis://localhost:6379/1',
        SIP2_REMOTE_ACTION_HANDLERS=dict(
            test_ils=dict(login_handler=remote_login_handler,
                          logout_handler=remote_handler,
                          system_status_handler=remote_system_status_handler,
                          patron_handlers=dict(
                              validate_patron=remote_validate_patron_handler,
                              authorize_patron=remote_authorize_patron_handler,
                              enable_patron=remote_enable_patron_handler,
                              patron_status=remote_patron_status_handler,
                              account=remote_patron_account_handler,
                          ),
                          item_handlers=dict(
                              item=remote_item_information_handler, ),
                          circulation_handlers=dict(
                              checkout=remote_checkout_handler,
                              checkin=remote_checkin_handler,
                              hold=remote_hold_handler,
                              renew=remote_renew_handler,
                          )),
            test_invalid=dict(login_handler='utils.remote_login_handler', )))
    Babel(app)
    InvenioDB(app)
    InvenioAccess(app)
    InvenioAccounts(app)
    # _database_setup(app, request)
    app.test_request_context().push()
    return app
Esempio n. 2
0
def base_app(base_app):
    """Flask base application fixture."""
    base_app.url_map.converters['pid'] = PIDConverter
    InvenioDB(base_app)
    InvenioRecords(base_app)
    InvenioRecordsREST(base_app)
    InvenioPIDStore(base_app)
    InvenioIndexer(base_app)
    InvenioPIDStore(base_app)
    InvenioSearch(base_app)
    InvenioCirculation(base_app)
    InvenioJSONSchemas(base_app)
    base_app.register_blueprint(create_blueprint_from_app(base_app))
    yield base_app
Esempio n. 3
0
    create_loan_for_item_blueprint, create_loan_replace_item_blueprint

# Create Flask application
app = Flask(__name__)
app.config.update(
    SERVER_NAME="localhost:5000",
    SECRET_KEY="SECRET_KEY",
    # No permission checking
    RECORDS_REST_DEFAULT_READ_PERMISSION_FACTORY=None,
    SQLALCHEMY_TRACK_MODIFICATIONS=True,
    SQLALCHEMY_DATABASE_URI=os.getenv("SQLALCHEMY_DATABASE_URI",
                                      "sqlite:///app.db"),
)
app.config["RECORDS_REST_ENDPOINTS"] = CIRCULATION_REST_ENDPOINTS
app.url_map.converters["pid"] = PIDConverter
InvenioDB(app)
InvenioRecords(app)
InvenioREST(app)
InvenioRecordsREST(app)
InvenioPIDStore(app)
InvenioSearch(app)
InvenioJSONSchemas(app)
InvenioCirculation(app)
app.register_blueprint(create_blueprint_from_app(app))
app.register_blueprint(create_loan_actions_blueprint(app))
app.register_blueprint(create_loan_for_item_blueprint(app))
app.register_blueprint(create_loan_replace_item_blueprint(app))


@app.cli.group()
def fixtures():