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
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
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():