def remote_accounts(db, users): """Create Remote Accounts for experiment groups.""" with db.session.begin_nested(): accounts = [ RemoteAccount.create(1, 'dev', dict(groups=['cms-members'])), RemoteAccount.create(2, 'dev', dict(groups=['cms-members'])), RemoteAccount.create(3, 'dev', dict(groups=['alice-member'])), RemoteAccount.create(5, 'dev', dict(groups=['atlas-active-members-all'])), RemoteAccount.create(7, 'dev', dict(groups=['lhcb-general'])) ] db.session.commit() return accounts
def test_settings_view(self): # Create a remove account (linked account) from invenio_oauthclient.models import RemoteAccount RemoteAccount.create(1, 'testid', None) self.assert401(self.client.get(url_for('oauthclient_settings.index'), follow_redirects=True)) self.login("admin", "") res = self.client.get(url_for('oauthclient_settings.index')) self.assert200(res) assert 'MyLinkedTestAccount' in res.data assert url_for('oauthclient.disconnect', remote_app='test') in res.data assert url_for('oauthclient.login', remote_app='full') in res.data assert url_for('oauthclient.login', remote_app='test_invalid') in \ res.data
def remote_account(app, user_without_role): """Create a remote token from user data.""" remote_account = RemoteAccount.create(1, 'dev', dict()) remote_token = RemoteToken.create(user_without_role.id, 'dev', 'token', 'secret') return remote_account, remote_token
def test_settings_view(self): # Create a remove account (linked account) from invenio_oauthclient.models import RemoteAccount RemoteAccount.create(1, 'testid', None) self.assert401( self.client.get(url_for('oauthclient_settings.index'), follow_redirects=True)) self.login("admin", "") res = self.client.get(url_for('oauthclient_settings.index')) self.assert200(res) assert 'MyLinkedTestAccount' in res.data assert url_for('oauthclient.disconnect', remote_app='test') in res.data assert url_for('oauthclient.login', remote_app='full') in res.data assert url_for('oauthclient.login', remote_app='test_invalid') in \ res.data
def remote_account_fixture(app, models_fixture): """Create a remote token from user data.""" datastore = app.extensions['security'].datastore user = datastore.find_user(email='*****@*****.**') remote_account = RemoteAccount.create(1, 'dev', dict()) remote_token = RemoteToken.create(user.id, 'dev', 'token', 'secret') return remote_account, remote_token
def g_remoteaccounts(app, db, g_remoteaccounts_data): """Fixture for RemoteAccount objects.""" for rad in g_remoteaccounts_data: ra = RemoteAccount.create(rad['user_id'], 'changeme', rad['extra_data']) db.session.add(ra) db.session.commit() rad['id'] = ra.id return g_remoteaccounts_data
def test_get_create_remote_account(app, example): """Test create remote account.""" created_acc = RemoteAccount.create(1, "dev", dict(somekey="somevalue")) assert created_acc retrieved_acc = RemoteAccount.get(1, "dev") assert created_acc.id == retrieved_acc.id assert retrieved_acc.extra_data == dict(somekey="somevalue") db.session.delete(retrieved_acc) assert RemoteAccount.get(1, "dev") is None
def test_get_create_remote_account(app, models_fixture): """Test create remote account.""" created_acc = RemoteAccount.create(1, 'dev', dict(somekey='somevalue')) assert created_acc retrieved_acc = RemoteAccount.get(1, 'dev') assert created_acc.id == retrieved_acc.id assert retrieved_acc.extra_data == dict(somekey='somevalue') db.session.delete(retrieved_acc) assert RemoteAccount.get(1, 'dev') is None
def test_get_create(self): from invenio_oauthclient.models import RemoteAccount created_acc = RemoteAccount.create(1, "dev", dict(somekey="somevalue")) assert created_acc retrieved_acc = RemoteAccount.get(1, "dev") assert created_acc.id == retrieved_acc.id assert retrieved_acc.extra_data == dict(somekey="somevalue") db.session.delete(retrieved_acc) assert RemoteAccount.get(1, "dev") is None
def create_invenio_remote_account(self, user_id, ldap_user): """Return new user entry.""" employee_id = ldap_user["remote_account_person_id"] department = ldap_user["remote_account_department"] mailbox = ldap_user["remote_account_mailbox"] return RemoteAccount.create( client_id=self.client_id, user_id=user_id, extra_data=dict(person_id=employee_id, department=department, mailbox=mailbox), )
def test_get_create_remote_account(models_fixture): """Test create remote account.""" app = models_fixture created_acc = RemoteAccount.create(1, 'dev', dict(somekey='somevalue')) assert created_acc retrieved_acc = RemoteAccount.get(1, 'dev') assert created_acc.id == retrieved_acc.id assert retrieved_acc.extra_data == dict(somekey='somevalue') db.session.delete(retrieved_acc) assert RemoteAccount.get(1, 'dev') is None
def test_settings_view(views_fixture): """Test settings view.""" app = views_fixture app.login_manager.login_view = None login_manager = app.login_manager datastore = app.extensions['invenio-accounts'].datastore @login_manager.user_loader def load_user(user_id): return user @app.route('/foo_login') def login(): user = datastore.find_user(email='*****@*****.**') login_user(user) return 'Logged In' with app.app_context(): with app.test_client() as client: user = datastore.find_user(email='*****@*****.**') RemoteAccount.create(user.get_id(), 'testid', None) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=False) assert resp.status_code == 401 # make a fake login (using my login function) client.get('/foo_login', follow_redirects=True) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=True) assert resp.status_code == 200 assert b'MyLinkedTestAccount' in resp.data assert url_for('invenio_oauthclient.disconnect', remote_app='test') in resp.data.decode('utf-8') assert url_for('invenio_oauthclient.login', remote_app='full') in resp.data.decode('utf-8') assert url_for( 'invenio_oauthclient.login', remote_app='test_invalid') in resp.data.decode('utf-8')
def test_settings_view(views_fixture): """Test settings view.""" app = views_fixture app.login_manager.login_view = None login_manager = app.login_manager datastore = app.extensions['invenio-accounts'].datastore @login_manager.user_loader def load_user(user_id): return user @app.route('/foo_login') def login(): user = datastore.find_user(email="*****@*****.**") login_user(user) return "Logged In" with app.app_context(): with app.test_client() as client: user = datastore.find_user(email="*****@*****.**") RemoteAccount.create(user.get_id(), 'testid', None) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=False) assert resp.status_code == 401 # make a fake login (using my login function) client.get('/foo_login', follow_redirects=True) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=True) assert resp.status_code == 200 assert b'MyLinkedTestAccount' in resp.data assert url_for('invenio_oauthclient.disconnect', remote_app='test') in resp.data.decode("utf-8") assert url_for('invenio_oauthclient.login', remote_app='full') in resp.data.decode("utf-8") assert url_for( 'invenio_oauthclient.login', remote_app='test_invalid') in resp.data.decode("utf-8")
def test_settings_view(): """Test settings view.""" app = setup_app() app.login_manager.login_view = None login_manager = app.login_manager datastore = app.extensions['invenio-accounts'].datastore datastore.create_user(email="*****@*****.**", password="******") user = datastore.find_user(email="*****@*****.**") @login_manager.user_loader def load_user(user_id): return user @app.route('/foo_login') def login(): login_user(user) return "Logged In" with app.test_client() as client: # Create a remove account (linked account) RemoteAccount.create(user.id, 'testid', None) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=False) assert resp.status_code == 401 # make a fake login (using my login function) client.get('/foo_login', follow_redirects=True) resp = client.get(url_for('invenio_oauthclient_settings.index'), follow_redirects=True) assert resp.status_code == 200 assert b'MyLinkedTestAccount' in resp.data assert url_for('invenio_oauthclient.disconnect', remote_app='test') in resp.data.decode("utf-8") assert url_for('invenio_oauthclient.login', remote_app='full') in resp.data.decode("utf-8") assert url_for('invenio_oauthclient.login', remote_app='test_invalid') in resp.data.decode("utf-8")
def github_remote_accounts(datadir, users, db): """Load GitHub remote account objects.""" # Create records and PIDs for GitHub releases for recid in ('100', '101', '200', '201'): r = Record.create({}) PersistentIdentifier.create('recid', recid, object_uuid=r.id) db.session.commit() with open(join(datadir, 'github_remote_accounts.json')) as fp: gh_remote_accounts = json.load(fp) remote_accounts = [] for idx, gh_ra in enumerate(gh_remote_accounts): assert users[idx]['id'] == gh_ra['user_id'] ra = RemoteAccount.create(gh_ra['user_id'], 'clientid', gh_ra['extra_data']) remote_accounts.append(ra) return remote_accounts