Exemple #1
0
def test_dataset2_rights_allowed_datasets(db, user, dataset_wrapper):
    add_group_perm_to_user("Dataset2", user)
    result = _get_allowed_datasets_for_user(user, dataset_wrapper.study_id)
    assert result == set(["Dataset2"])

    result = get_allowed_genotype_studies(user, dataset_wrapper.study_id)
    assert result == set(["Study2"])
Exemple #2
0
def test_get_directly_allowed_genotype_data(db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", "Dataset")

    allowed_dtasets = get_directly_allowed_genotype_data(user)
    print(allowed_dtasets)
    assert "Dataset" in allowed_dtasets
    assert _user_has_permission_strict(user, "Dataset")
Exemple #3
0
def test_explore_datasets_nauser_and_groups(db, na_user, dataset_wrapper):
    add_group_perm_to_user("A", na_user)
    add_group_perm_to_dataset("A", "Dataset")

    print(get_user_groups(na_user))
    print(get_dataset_groups("Dataset"))

    assert get_user_groups(na_user) & get_dataset_groups("Dataset")
Exemple #4
0
def test_dataset_group_rights_gives_access_to_all_datasets(
        db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", dataset_wrapper.study_id)

    assert user_has_permission(user, "Dataset1")
    assert user_has_permission(user, "Dataset2")
    assert user_has_permission(user, "Dataset")
Exemple #5
0
def test_dataset1_group_rights_gives_access_to_study1_and_study3(
        db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", "Dataset1")

    assert user_has_permission(user, "Study1")
    assert user_has_permission(user, "Study3")

    assert not user_has_permission(user, "Study2")
Exemple #6
0
def test_dataset_admin_group_rights(db, user, dataset_wrapper):
    add_group_perm_to_user("admin", user)

    assert user_has_permission(user, dataset_wrapper.study_id)

    result = _get_allowed_datasets_for_user(user, dataset_wrapper.study_id)
    assert result == set(["Dataset"])

    result = get_allowed_genotype_studies(user, dataset_wrapper.study_id)
    assert result == set(["Study1", "Study2", "Study3"])
Exemple #7
0
def test_mixed_dataset_rights_query(db, user, user_client, preview_sources):
    data = {
        "datasetId": "composite_dataset_ds",
        "sources": list(preview_sources),
    }

    add_group_perm_to_user("inheritance_trio", user)

    response = user_client.post(QUERY_VARIANTS_URL,
                                json.dumps(data),
                                content_type="application/json")
    assert status.HTTP_200_OK == response.status_code
    res = response.streaming_content
    res = json.loads("".join(map(lambda x: x.decode("utf-8"), res)))

    assert len(res) == 14
Exemple #8
0
def test_explore_datasets_users_and_groups(db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", "Dataset")

    group = Group.objects.get(name="A")

    dataset = Dataset.objects.get(dataset_id="Dataset")

    print("===========================================================")
    print(group, dir(group))
    print("===========================================================")

    print("user.groups:", user.groups.all())
    print("get_groups_with_perms:", get_groups_with_perms(dataset))

    print(get_user_groups(user))
    print(get_dataset_groups(dataset))
    print(get_dataset_groups("Dataset"))

    assert get_user_groups(user) & get_dataset_groups(dataset)
Exemple #9
0
def test_mixed_dataset_rights_download(db, user, user_client,
                                       download_sources):
    data = {
        "queryData":
        json.dumps({
            "datasetId": "composite_dataset_ds",
            "sources": list(download_sources),
            "download": True,
        })
    }

    add_group_perm_to_dataset("new_custom_group", "inheritance_trio")
    add_group_perm_to_user("new_custom_group", user)

    response = user_client.post(QUERY_VARIANTS_URL,
                                json.dumps(data),
                                content_type="application/json")
    assert response.status_code == status.HTTP_200_OK
    res = list(response.streaming_content)
    assert len(res) == 15
Exemple #10
0
def test_mixed_dataset_rights_with_study_filters(db, user, user_client,
                                                 preview_sources):
    data = {
        "datasetId": "composite_dataset_ds",
        "studyFilters": [{
            "studyId": "quads_f1"
        }],
        "sources": list(preview_sources),
    }

    add_group_perm_to_dataset("new_custom_group", "inheritance_trio")
    add_group_perm_to_user("new_custom_group", user)

    response = user_client.post(QUERY_VARIANTS_URL,
                                json.dumps(data),
                                content_type="application/json")
    assert status.HTTP_200_OK == response.status_code
    res = response.streaming_content
    res = json.loads("".join(map(lambda x: x.decode("utf-8"), res)))

    print(res)

    assert len(res) == 0
Exemple #11
0
def test_dataset_rights(db, user, dataset_wrapper):
    add_group_perm_to_user(dataset_wrapper.study_id, user)
    assert user_has_permission(user, dataset_wrapper.study_id)
Exemple #12
0
def test_get_allowed_dataset_from_parent(db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", "Dataset")

    allowed_datasets = _get_allowed_datasets_for_user(user, "Dataset1")
    assert "Dataset1" in allowed_datasets
Exemple #13
0
def test_dataset1_group_rights(db, user, dataset_wrapper):
    add_group_perm_to_user("A", user)
    add_group_perm_to_dataset("A", "Dataset1")

    assert user_has_permission(user, dataset_wrapper.study_id)