def user(): """Create circulation admin user.""" from werkzeug.local import LocalProxy from flask_security.utils import encrypt_password from invenio_db import db from invenio_oauth2server.models import Token _datastore = LocalProxy(lambda: app.extensions['security'].datastore) kwargs = dict( email='*****@*****.**', password='******', active=True ) kwargs['password'] = encrypt_password(kwargs['password']) user = _datastore.create_user(**kwargs) Token.create_personal( 'test-personal-{0}'.format(user.id), user.id, scopes=['webhooks:event'], is_internal=True, ).access_token db.session.commit()
def test_save_patron(get_uuid_pid_by_email, reindex, record_indexer, url_for1, url_for2, send_email, confirm_user, app, db, minimal_patron_only_record): """Test save patron""" # Convenient references security = LocalProxy(lambda: app.extensions['security']) datastore = LocalProxy(lambda: security.datastore) datastore.create_role(name='patrons') # hack the return value get_uuid_pid_by_email.return_value = None, None email = '*****@*****.**' u1 = datastore.create_user(email=email, active=False, password=hash_password('aafaf4as5fa')) datastore.commit() u2 = datastore.find_user(email=email) assert u1 == u2 assert 1 == User.query.filter_by(email=email).count() email = minimal_patron_only_record.get('email') assert datastore.get_user(email) is None save_patron(minimal_patron_only_record, Patron.provider.pid_type, Patron.fetcher, Patron.minter, record_indexer, Patron, None) email = minimal_patron_only_record.get('email') # Verify that user exists in app's datastore user_ds = datastore.get_user(email) assert user_ds assert user_ds.email == email
def access_token(app, db): _datastore = LocalProxy(lambda: app.extensions['security'].datastore) kwargs = dict(email='*****@*****.**', password='******', active=True) kwargs['password'] = encrypt_password(kwargs['password']) user = _datastore.create_user(**kwargs) db.session.commit() token = Token.create_personal( 'test-personal-{0}'.format(user.id), user.id, scopes=['webhooks:event'], is_internal=True, ).access_token db.session.commit() yield token
def access_token(app, db): _datastore = LocalProxy(lambda: app.extensions['security'].datastore) kwargs = dict(email='*****@*****.**', password='******', active=True) kwargs['password'] = encrypt_password(kwargs['password']) user = _datastore.create_user(**kwargs) db.session.commit() token = Token.create_personal( 'test-personal-{0}'.format(user.id), user.id, scopes=['webhooks:event'], is_internal=True, ).access_token db.session.commit() yield token
def app(request): """Flask application fixture.""" # Set temporary instance path for sqlite instance_path = tempfile.mkdtemp() app = Flask('testapp', instance_path=instance_path) app.config.update(SQLALCHEMY_DATABASE_URI=os.environ.get( 'SQLALCHEMY_DATABASE_URI', 'sqlite:///test.db'), TESTING=True, SECRET_KEY='SECRET_KEY', SQLALCHEMY_TRACK_MODIFICATIONS=False, JSONSCHEMAS_ENDPOINT='/schema', JSONSCHEMAS_HOST='ils.test.rero.ch', RECORDS_UI_ENDPOINTS={ "doc": { "pid_type": "doc", "route": "/documents/<pid_value>", "template": "reroils_data/detailed_view_documents_items.html" } }) InvenioDB(app) InvenioPIDStore(app) InvenioRecords(app) InvenioAccounts(app) REROILSDATA(app) InvenioAccess(app) InvenioJSONSchemas(app) InvenioRecordsUI(app) Menu(app) Babel(app) app.register_blueprint(item_blueprint) @app.route('/test/login') def login(): from flask_security import login_user from flask import request as flask_request role = flask_request.args.get('role') if role: datastore.create_role(name=role) datastore.add_role_to_user(user, role) datastore.commit() login_user(user) return "Logged In" @app.route('/test/login') def logout(): from flask_security import logout_user logout_user() return "Logged Out" from invenio_db import db as db_ with app.app_context(): if not database_exists(str(db_.engine.url)): create_database(str(db_.engine.url)) db_.create_all() security = LocalProxy(lambda: app.extensions['security']) datastore = LocalProxy(lambda: security.datastore) user = datastore.create_user(email='*****@*****.**', active=True, password=hash_password('aafaf4as5fa')) yield app # Teardown instance path. db_.session.remove() db_.drop_all() shutil.rmtree(instance_path)
form = RegisterForm(csrf_enabled=not app.testing) <<<<<<< HEAD if form.validate_on_submit(): u = None try: u = _datastore.find_user(email=form.data.get('email')) if u is not None: _logger.debug('User %s exists' % u) form.email.errors.append('A user with that email already exists') return render_template('security/registrations/new.html', register_user_form=form) except: # Create user u = _datastore.create_user(**form.to_dict()) ======= if not form.validate_on_submit(): return render_template('security/register.html', register_user_form=form, **_ctx('register')) >>>>>>> 8919129c95bb1e27e30a925240811cf63e13ece9 token = None user = _datastore.create_user(**form.to_dict()) _commit() if _security.confirmable: token = send_confirmation_instructions(user) do_flash(*get_message('CONFIRM_REGISTRATION', email=user.email))