Пример #1
0
def test_evaluation_list(client, two_challenge_sets):
    validate_admin_or_participant_view(
        viewname="evaluation:list",
        two_challenge_set=two_challenge_sets,
        client=client,
    )
    (
        *_,
        e_p_s1,
        e_p_s2,
        e_p1_s1,
        e_p12_s1_c1,
        e_p12_s1_c2,
    ) = submissions_and_evaluations(two_challenge_sets)
    # Participants should only be able to see their own evaluations
    response = get_view_for_user(
        viewname="evaluation:list",
        challenge=two_challenge_sets.challenge_set_1.challenge,
        client=client,
        user=two_challenge_sets.challenge_set_1.participant,
    )
    assert str(e_p_s1.pk) in response.rendered_content
    assert str(e_p_s2.pk) in response.rendered_content
    assert str(e_p1_s1.pk) not in response.rendered_content
    assert str(e_p12_s1_c1.pk) not in response.rendered_content
    assert str(e_p12_s1_c2.pk) not in response.rendered_content
    # Admins should be able to see all evaluations
    response = get_view_for_user(
        viewname="evaluation:list",
        challenge=two_challenge_sets.challenge_set_1.challenge,
        client=client,
        user=two_challenge_sets.challenge_set_1.admin,
    )
    assert str(e_p_s1.pk) in response.rendered_content
    assert str(e_p_s2.pk) in response.rendered_content
    assert str(e_p1_s1.pk) in response.rendered_content
    assert str(e_p12_s1_c1.pk) in response.rendered_content
    assert str(e_p12_s1_c2.pk) not in response.rendered_content
    # Only evaluations relevant to this challenge should be listed
    response = get_view_for_user(
        viewname="evaluation:list",
        challenge=two_challenge_sets.challenge_set_1.challenge,
        client=client,
        user=two_challenge_sets.participant12,
    )
    assert str(e_p12_s1_c1.pk) in response.rendered_content
    assert str(e_p12_s1_c2.pk) not in response.rendered_content
    assert str(e_p_s1.pk) not in response.rendered_content
    assert str(e_p_s2.pk) not in response.rendered_content
    assert str(e_p1_s1.pk) not in response.rendered_content
def test_admin_or_participant_permissions(client, TwoChallengeSets, view):
    team = TeamFactory(
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        owner=TwoChallengeSets.ChallengeSet1.participant,
    )
    if view in ('teams:detail', 'teams:member-create'):
        pk = team.pk
    else:
        pk = None
    validate_admin_or_participant_view(
        viewname=view,
        reverse_kwargs={'pk': pk},
        two_challenge_set=TwoChallengeSets,
        client=client,
    )
Пример #3
0
def test_admin_or_participant_permissions(client, TwoChallengeSets, view):
    team = TeamFactory(
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        owner=TwoChallengeSets.ChallengeSet1.participant,
    )
    if view in ("teams:detail", "teams:member-create"):
        pk = team.pk
    else:
        pk = None
    validate_admin_or_participant_view(
        viewname=view,
        reverse_kwargs={"pk": pk},
        two_challenge_set=TwoChallengeSets,
        client=client,
    )
Пример #4
0
def test_admin_or_participant_permissions(client, two_challenge_sets, view):
    team = TeamFactory(
        challenge=two_challenge_sets.challenge_set_1.challenge,
        owner=two_challenge_sets.challenge_set_1.participant,
    )
    if view in ("teams:detail", "teams:member-create"):
        pk = team.pk
    else:
        pk = None
    validate_admin_or_participant_view(
        viewname=view,
        reverse_kwargs={"pk": pk},
        two_challenge_set=two_challenge_sets,
        client=client,
    )
Пример #5
0
def test_submission_create(client, TwoChallengeSets):
    validate_admin_or_participant_view(
        viewname="evaluation:submission-create",
        two_challenge_set=TwoChallengeSets,
        client=client,
    )

    response = get_view_for_user(
        viewname="evaluation:submission-create",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        user=TwoChallengeSets.ChallengeSet1.participant,
        client=client,
    )

    assert response.status_code == 200
    assert "Creator" not in response.rendered_content
Пример #6
0
def test_submission_create(client, TwoChallengeSets):
    validate_admin_or_participant_view(
        viewname="evaluation:submission-create",
        two_challenge_set=TwoChallengeSets,
        client=client,
    )

    response = get_view_for_user(
        viewname="evaluation:submission-create",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        user=TwoChallengeSets.ChallengeSet1.participant,
        client=client,
    )

    assert response.status_code == 200
    assert "Creator" not in response.rendered_content
Пример #7
0
def test_job_list(client, TwoChallengeSets):
    validate_admin_or_participant_view(
        viewname="evaluation:job-list",
        two_challenge_set=TwoChallengeSets,
        client=client,
    )
    *_, j_p_s1, j_p_s2, j_p1_s1, j_p12_s1_c1, j_p12_s1_c2 = submissions_and_jobs(
        TwoChallengeSets
    )
    # Participants should only be able to see their own jobs
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.ChallengeSet1.participant,
    )
    assert str(j_p_s1.pk) in response.rendered_content
    assert str(j_p_s2.pk) in response.rendered_content
    assert str(j_p1_s1.pk) not in response.rendered_content
    assert str(j_p12_s1_c1.pk) not in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    # Admins should be able to see all jobs
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.ChallengeSet1.admin,
    )
    assert str(j_p_s1.pk) in response.rendered_content
    assert str(j_p_s2.pk) in response.rendered_content
    assert str(j_p1_s1.pk) in response.rendered_content
    assert str(j_p12_s1_c1.pk) in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    # Only jobs relevant to this challenge should be listed
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.participant12,
    )
    assert str(j_p12_s1_c1.pk) in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    assert str(j_p_s1.pk) not in response.rendered_content
    assert str(j_p_s2.pk) not in response.rendered_content
    assert str(j_p1_s1.pk) not in response.rendered_content
Пример #8
0
def test_job_list(client, TwoChallengeSets):
    validate_admin_or_participant_view(
        viewname="evaluation:job-list",
        two_challenge_set=TwoChallengeSets,
        client=client,
    )
    *_, j_p_s1, j_p_s2, j_p1_s1, j_p12_s1_c1, j_p12_s1_c2 = submissions_and_jobs(
        TwoChallengeSets
    )
    # Participants should only be able to see their own jobs
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.ChallengeSet1.participant,
    )
    assert str(j_p_s1.pk) in response.rendered_content
    assert str(j_p_s2.pk) in response.rendered_content
    assert str(j_p1_s1.pk) not in response.rendered_content
    assert str(j_p12_s1_c1.pk) not in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    # Admins should be able to see all jobs
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.ChallengeSet1.admin,
    )
    assert str(j_p_s1.pk) in response.rendered_content
    assert str(j_p_s2.pk) in response.rendered_content
    assert str(j_p1_s1.pk) in response.rendered_content
    assert str(j_p12_s1_c1.pk) in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    # Only jobs relevant to this challenge should be listed
    response = get_view_for_user(
        viewname="evaluation:job-list",
        challenge=TwoChallengeSets.ChallengeSet1.challenge,
        client=client,
        user=TwoChallengeSets.participant12,
    )
    assert str(j_p12_s1_c1.pk) in response.rendered_content
    assert str(j_p12_s1_c2.pk) not in response.rendered_content
    assert str(j_p_s1.pk) not in response.rendered_content
    assert str(j_p_s2.pk) not in response.rendered_content
    assert str(j_p1_s1.pk) not in response.rendered_content