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 ')
Esempio n. 4
0
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
Esempio n. 5
0
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')
Esempio n. 7
0
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')
Esempio n. 8
0
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
Esempio n. 10
0
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
Esempio n. 20
0
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')
Esempio n. 23
0
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')
Esempio n. 24
0
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')
Esempio n. 25
0
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
Esempio n. 27
0
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')