def test_give_role_entity_type_explicit(entity_type, group): role_name = group + '_EDITOR' run_commander('give --role {} write --entity-type {}'.format( role_name, entity_type)) permission = get_role_entity_type_permission(entity_type, role_name) assert permission == Permission.WRITE
def test_give_role_entity(rls_entity_type, group): role_name = group + '_EDITOR' run_commander('give {} write {} --entity 1'.format(role_name, rls_entity_type)) permission = get_role_entity_permission(rls_entity_type, 1, role_name) assert permission == Permission.WRITE
def test_set_from_path(session): file = get_resource_folder().joinpath('footer1.txt') run_commander('set app footer --from-path {}'.format(str(file))) settings = session.get('sys_set_app')[0] assert settings['footer'] == 'This footer has been changed by MOLGENIS Commander' run_commander('set app footer ')
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_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_import_emx_with_import_action(session): run_commander('import it_emx_test --with-action add') # Test should fail when same file is imported with import action add run_commander_fail('import it_emx_test --with-action add') # cleanup session.delete('sys_md_Package', 'it')
def test_run_from_line(session): run_commander('run test_script --from-line 3') try: assert not package_exists(session, 'scripttest') assert package_exists(session, 'otherpackage') finally: session.delete('sys_md_Package', 'otherpackage')
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_group_member_explicit(session, user, group): role_name = '{}_MANAGER'.format(group) run_commander('make --user {} {}'.format(user, role_name)) memberships = _get_memberships_by_username(user, session) assert len(memberships) == 1 assert memberships[0]['role']['name'] == role_name
def test_enable_language(session): session.update_one('sys_Language', 'nl', 'active', False) run_commander('enable language nl') assert session.get_by_id('sys_Language', 'nl')['active'] is True # cleanup session.update_one('sys_Language', 'nl', 'active', False)
def test_import_vcf(session): run_commander('import testvcf') result = session.get('testvcf') assert len(result) == 5 # cleanup session.delete('sys_md_EntityType', 'testvcf')
def test_import_emx(session): run_commander('import it_emx_autoid') result = session.get('it_emx_autoid_testAutoId') assert len(result) > 0 # cleanup session.delete('sys_md_Package', 'it')
def test_import_ontology(session): run_commander('import uo.owl.zip') result = session.get('sys_ont_Ontology', q=_ontologies_by_name_query('uo')) assert len(result) == 1 # cleanup session.delete('sys_ont_Ontology', result[0]['id'])
def test_make_group_member_update_identical(session, user, group): role_name = '{}_VIEWER'.format(group) run_commander('make {} {}'.format(user, role_name)) run_commander('make {} {}'.format(user, role_name)) memberships = _get_memberships_by_username(user, session) assert len(memberships) == 1 assert memberships[0]['role']['name'] == role_name
def test_import_ontology(session): result = session.get('sys_ont_Ontology', q='ontologyName==uo') num_ontologies = len(result) run_commander('import uo.owl.zip') result = session.get('sys_ont_Ontology', q='ontologyName==uo') assert len(result) == num_ontologies + 1
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_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_ping_online(capsys): run_commander('ping') captured = capsys.readouterr().out assert 'Online' in captured assert 'Version' in captured assert get_host()['url'] in captured assert get_host()['username'] in captured
def test_import_ontology(session): result = session.get('sys_ont_Ontology', q=_ontologies_by_name_query('uo')) num_ontologies = len(result) run_commander('import uo.owl.zip') result = session.get('sys_ont_Ontology', q=_ontologies_by_name_query('uo')) assert len(result) == num_ontologies + 1
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_import_from_url(session): file_url = 'https://github.com/molgenis/molgenis/files/626894/emx_package-only.xlsx' run_commander('import --from-url {}'.format(file_url)) session.get_by_id('sys_md_Package', 'test') # cleanup session.delete('sys_md_Package', 'test')
def test_import_from_path(session): file = get_dataset_folder().joinpath('it_emx_autoid.xlsx') run_commander('import --from-path {}'.format(str(file))) result = session.get('it_emx_autoid_testAutoId') assert len(result) > 0 # cleanup session.delete('sys_md_Package', 'it')
def test_run_error(session): with pytest.raises(SystemExit): run_commander('run test_script_error') try: assert package_exists(session, 'scripttest') assert not package_exists(session, 'package_after_error') finally: session.delete('sys_md_Package', 'scripttest')
def test_run_ignore_error(session): run_commander('run test_script_error --ignore-errors') try: assert package_exists(session, 'scripttest') assert package_exists(session, 'package_after_error') finally: session.delete('sys_md_Package', 'scripttest') session.delete('sys_md_Package', 'package_after_error')
def test_run(session): run_commander('run test_script') try: assert entity_type_exists(session, 'scripttest_testAutoId') assert package_exists(session, 'otherpackage') finally: session.delete('sys_md_Package', 'scripttest') session.delete('sys_md_Package', 'otherpackage')
def test_ping_offline(get_version_mock, capsys): get_version_mock.side_effect = McmdError('') run_commander('ping') captured = capsys.readouterr().out assert 'Offline' in captured assert 'Version' not in captured assert get_host()['url'] in captured assert get_host()['username'] in captured
def test_run_comments(session, caplog): run_commander('run test_script_comments') settings = session.get('sys_set_app')[0] assert settings['title'] == 'test' expected_messages = ["Let's change the app title", '', '', 'Finished'] assert caplog.messages == expected_messages
def test_as_user(set_token_mock, session, user): run_commander('give {} write sys_set_app'.format(user)) set_token_mock.reset_mock() run_commander('--as-user {} set app title login5'.format(user)) # 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 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_import_from_issue_named(session): file_name = 'emx_package-only.xlsx' issue_num = 5693 run_commander('import --from-issue {} {}'.format(issue_num, file_name)) session.get_by_id('sys_md_Package', 'test') # cleanup get_test_context().get_issues_folder().joinpath(str(issue_num)).joinpath(file_name).unlink() session.delete('sys_md_Package', 'test')