def test_add_package_in_package(session): name1 = random_name() name2 = random_name() run_commander('add package {}'.format(name1)) run_commander('add package {} --in {}'.format(name2, name1)) package = session.get_by_id('sys_md_Package', name2, expand=['parent']) assert package['parent']['id'] == name1
def test_add_role_includes(session): name = random_name() run_commander('add role {} --includes VIEWER'.format(name)) result = session.get('sys_sec_Role', expand=['includes'], q=role_by_name_query(name)) assert len(result) == 1 assert result[0]['includes']['items'][0]['name'] == 'VIEWER'
def test_add_role_to_group(session, group): name = random_name() run_commander('add role {} --to-group {}'.format(name, group)) result = session.get('sys_sec_Role', expand=['group'], q=role_by_name_query(name)) assert len(result) == 1 assert result[0]['group']['name'] == group
def test_add_role_to_group_and_includes(session, group): name = random_name() run_commander('add role {} --to-group {} --includes {}_EDITOR'.format(name, group, group)) result = session.get('sys_sec_Role', expand=['group', 'includes'], q=role_by_name_query(name)) assert len(result) == 1 assert result[0]['group']['name'] == group assert result[0]['includes']['items'][0]['name'] == '{}_EDITOR'.format(group)
def test_make_role_member(session, user): role_name = random_name() run_commander('add role {}'.format(role_name)) run_commander('make {} {}'.format(user, role_name)) memberships = _get_memberships_by_user_and_role(user, role_name, session) assert len(memberships) == 1 assert memberships[0]['role']['name'] == role_name
def test_include_group_role_explicit(session, group): role_name = random_name() group_role_name = '{}_VIEWER'.format(group) run_commander('add role {}'.format(role_name)) run_commander('make --role {} {}'.format(role_name, group_role_name)) role = _get_role_by_name(role_name, session) assert role['includes']['items'][0]['name'] == group_role_name
def test_delete_package_contents(session, entity_type): package = entity_type.split('_')[0] child_package = random_name() run_commander('add package {} --in {}'.format(child_package, package)) run_commander('delete --force --package --contents {}'.format(package)) assert not entity_type_exists(session, entity_type) assert not package_exists(session, child_package) assert package_exists(session, package)
def test_add_token(session): token = random_name() run_commander('add token admin {}'.format(token)) result = session.get('sys_sec_Token', q=_token_by_token_query(token), expand=['user']) assert len(result) == 1 token = result[0] assert token['User']['username'] == 'admin'
def test_add_role_includes_multiple(session): name = random_name() run_commander('add role {} --includes VIEWER MANAGER'.format(name)) result = session.get('sys_sec_Role', expand=['includes'], q=role_by_name_query(name)) assert len(result) == 1 includes = {item['name'] for item in result[0]['includes']['items']} assert includes == {'VIEWER', 'MANAGER'}
def test_as_user_with_password(set_token_mock, session): name = random_name() run_commander('add user {} --set-password test'.format(name)) run_commander('give {} write sys_set_app'.format(name)) set_token_mock.reset_mock() run_commander('--as-user {} --with-password test set app title login5'.format(name)) # running as a user uses arguments as credentials so no token should've been set assert not set_token_mock.called settings = session.get('sys_set_app')[0] assert settings['title'] == 'login5'
def entity_is_row_level_secured(admin_session, entity_id): """Workaround: there is no endpoint to check whether an entity is row level secured.""" assert not entity_is_empty( admin_session, entity_id), "Need an entity with data to check RLS" name = random_name() run_commander('add user {}'.format(name)) run_commander('give {} read {}'.format(name, entity_id)) user_session = molgenis.client.Session(urljoin(get_host()['url'], '/api/')) user_session.login(name, name) return entity_is_empty(user_session, entity_id)
def test_add_user_inactive(session): name = random_name() run_commander('add user {} --is-inactive'.format(name)) assert _user_can_login(name, name) is False result = session.get('sys_sec_User', q=_user_by_name_query(name)) assert len(result) == 1 user = result[0] assert user['Email'] == '{}@molgenis.org'.format(name) assert user['active'] is False assert user['superuser'] is False assert user['changePassword'] is False
def test_add_user_email(session): name = random_name() run_commander('add user {} --with-email {}@test.nl'.format(name, name)) assert _user_can_login(name, name) result = session.get('sys_sec_User', q=_user_by_name_query(name)) assert len(result) == 1 user = result[0] assert user['Email'] == '{}@test.nl'.format(name) assert user['active'] is True assert user['superuser'] is False assert user['changePassword'] is False
def test_add_user_set_password(session): name = random_name() password = '******' run_commander('add user {} --set-password {}'.format(name, password)) assert _user_can_login(name, password) result = session.get('sys_sec_User', q=_user_by_name_query(name)) assert len(result) == 1 user = result[0] assert user['Email'] == '{}@molgenis.org'.format(name) assert user['active'] is True assert user['superuser'] is False assert user['changePassword'] is False
def user(): name = random_name() run_commander('add user {}'.format(name)) return name
def test_add_role(session): name = random_name() run_commander('add role {}'.format(name)) result = session.get('sys_sec_Role', q=role_by_name_query(name)) assert len(result) == 1
def test_add_package(session): name = random_name() run_commander('add package {}'.format(name)) package = session.get_by_id('sys_md_Package', name) assert 'parent' not in package
def _random_group_name(): return '{}-{}'.format(random_name(), random_name())
def test_import_vcf_as_name(session): name = random_name() run_commander('import testvcf --as {}'.format(name)) result = session.get(name) assert len(result) == 5
def package(): name = random_name() run_commander('add package {}'.format(name)) return name
def group(): name = random_name() run_commander('add group {}'.format(name)) return name