Ejemplo n.º 1
0
def test_jobrequestdetail_with_unknown_job_request(rf):
    workspace = WorkspaceFactory()

    request = rf.get("/")
    request.user = UserFactory()

    with pytest.raises(Http404):
        JobRequestDetail.as_view()(
            request,
            org_slug=workspace.project.org.slug,
            project_slug=workspace.project.slug,
            workspace_slug=workspace.name,
            pk=0,
        )
Ejemplo n.º 2
0
def test_jobrequestdetail_with_permission_with_completed_at(rf):
    job_request = JobRequestFactory()

    JobFactory(
        job_request=job_request,
        status="succeeded",
        completed_at=timezone.now(),
    )

    user = UserFactory()

    ProjectMembershipFactory(project=job_request.workspace.project,
                             user=user,
                             roles=[ProjectDeveloper])

    request = rf.get("/")
    request.user = user

    response = JobRequestDetail.as_view()(
        request,
        org_slug=job_request.workspace.project.org.slug,
        project_slug=job_request.workspace.project.slug,
        workspace_slug=job_request.workspace.name,
        pk=job_request.pk,
    )

    assert response.status_code == 200
    assert "Cancel" in response.rendered_content
Ejemplo n.º 3
0
def test_jobrequestdetail_with_unauthenticated_user(rf):
    job_request = JobRequestFactory()

    request = rf.get(MEANINGLESS_URL)
    request.user = AnonymousUser()
    response = JobRequestDetail.as_view()(request, pk=job_request.pk)

    assert response.status_code == 200
    assert "Zombify" not in response.rendered_content
Ejemplo n.º 4
0
def test_jobrequestdetail_with_superuser(rf, superuser):
    job_request = JobRequestFactory()

    request = rf.get(MEANINGLESS_URL)
    request.user = superuser

    membership_url = (
        f"https://api.github.com/orgs/opensafely/members/{superuser.username}")
    responses.add(responses.GET, membership_url, status=204)

    response = JobRequestDetail.as_view()(request, pk=job_request.pk)

    assert response.status_code == 200
    assert "Zombify" in response.rendered_content
Ejemplo n.º 5
0
def test_jobrequestdetail_with_authenticated_user(rf):
    job_request = JobRequestFactory()
    user = UserFactory(is_superuser=False, roles=[])

    request = rf.get(MEANINGLESS_URL)
    request.user = user

    membership_url = f"https://api.github.com/orgs/opensafely/members/{user.username}"
    responses.add(responses.GET, membership_url, status=204)

    response = JobRequestDetail.as_view()(request, pk=job_request.pk)

    assert response.status_code == 200
    assert "Zombify" not in response.rendered_content
Ejemplo n.º 6
0
def test_jobrequestdetail_without_permission(rf):
    job_request = JobRequestFactory()

    request = rf.get("/")
    request.user = UserFactory()

    response = JobRequestDetail.as_view()(
        request,
        org_slug=job_request.workspace.project.org.slug,
        project_slug=job_request.workspace.project.slug,
        workspace_slug=job_request.workspace.name,
        pk=job_request.pk,
    )

    assert response.status_code == 200
    assert "Cancel" not in response.rendered_content
Ejemplo n.º 7
0
def test_jobrequestdetail_with_unauthenticated_user(rf):
    job_request = JobRequestFactory()

    request = rf.get("/")
    request.user = AnonymousUser()

    response = JobRequestDetail.as_view()(
        request,
        org_slug=job_request.workspace.project.org.slug,
        project_slug=job_request.workspace.project.slug,
        workspace_slug=job_request.workspace.name,
        pk=job_request.pk,
    )

    assert response.status_code == 200
    assert "Honeycomb" not in response.rendered_content
Ejemplo n.º 8
0
def test_jobrequestdetail_with_job_request_creator(rf):
    user = UserFactory()
    job_request = JobRequestFactory(created_by=user)

    request = rf.get("/")
    request.user = user

    response = JobRequestDetail.as_view()(
        request,
        org_slug=job_request.workspace.project.org.slug,
        project_slug=job_request.workspace.project.slug,
        workspace_slug=job_request.workspace.name,
        pk=job_request.pk,
    )

    assert response.status_code == 200
    assert "Cancel" in response.rendered_content
Ejemplo n.º 9
0
def test_jobrequestdetail_with_permission_core_developer(rf):
    job_request = JobRequestFactory()

    user = UserFactory(roles=[CoreDeveloper])

    request = rf.get("/")
    request.user = user

    response = JobRequestDetail.as_view()(
        request,
        org_slug=job_request.workspace.project.org.slug,
        project_slug=job_request.workspace.project.slug,
        workspace_slug=job_request.workspace.name,
        pk=job_request.pk,
    )

    assert response.status_code == 200
    assert "Honeycomb" in response.rendered_content
    assert "%22end_time%22%3A1655380800%2C" in response.rendered_content