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, )
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, )
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, )
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
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
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
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