def test_jobrequestcancel_unauthorized(rf): job_request = JobRequestFactory() user = UserFactory() request = rf.post("/") request.user = user with pytest.raises(Http404): JobRequestCancel.as_view()(request, pk=job_request.pk)
def test_jobrequestcancel_unknown_job_request(rf): user = UserFactory() request = rf.post(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) with pytest.raises(Http404): JobRequestCancel.as_view()(request, pk=0)
def test_jobrequestcancel_unauthorized(rf): job_request = JobRequestFactory() user = UserFactory() request = rf.post(MEANINGLESS_URL) request.user = user membership_url = f"https://api.github.com/orgs/opensafely/members/{user.username}" responses.add(responses.GET, membership_url, status=404) response = JobRequestCancel.as_view()(request, pk=job_request.pk) assert response.status_code == 302 assert response.url == f"{settings.LOGIN_URL}?next=/"
def test_jobrequestcancel_with_job_request_creator(rf): user = UserFactory() job_request = JobRequestFactory(cancelled_actions=[], created_by=user) JobFactory(job_request=job_request, action="test1") request = rf.post("/") request.user = user response = JobRequestCancel.as_view()(request, pk=job_request.pk) assert response.status_code == 302 assert response.url == job_request.get_absolute_url() job_request.refresh_from_db() assert "test1" in job_request.cancelled_actions
def test_jobrequestcancel_already_completed(rf): job_request = JobRequestFactory(cancelled_actions=[]) JobFactory(job_request=job_request, status="succeeded") JobFactory(job_request=job_request, status="failed") user = UserFactory() ProjectMembershipFactory(project=job_request.workspace.project, user=user, roles=[ProjectDeveloper]) request = rf.post("/") request.user = user response = JobRequestCancel.as_view()(request, pk=job_request.pk) assert response.status_code == 302 assert response.url == job_request.get_absolute_url() job_request.refresh_from_db() assert job_request.cancelled_actions == []
def test_jobrequestcancel_already_finished(rf): job_request = JobRequestFactory(cancelled_actions=[]) JobFactory(job_request=job_request, status="succeeded") JobFactory(job_request=job_request, status="failed") user = UserFactory() request = rf.post(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 = JobRequestCancel.as_view()(request, pk=job_request.pk) assert response.status_code == 302 assert response.url == reverse("job-request-detail", kwargs={"pk": job_request.pk}) job_request.refresh_from_db() assert job_request.cancelled_actions == []
def test_jobrequestcancel_success(rf): job_request = JobRequestFactory(cancelled_actions=[]) JobFactory(job_request=job_request, action="test1") JobFactory(job_request=job_request, action="test2") JobFactory(job_request=job_request, action="test3") user = UserFactory() ProjectMembershipFactory(project=job_request.workspace.project, user=user, roles=[ProjectDeveloper]) request = rf.post("/") request.user = user response = JobRequestCancel.as_view()(request, pk=job_request.pk) assert response.status_code == 302 assert response.url == job_request.get_absolute_url() job_request.refresh_from_db() assert "test1" in job_request.cancelled_actions assert "test2" in job_request.cancelled_actions assert "test3" in job_request.cancelled_actions
def test_jobrequestcancel_unknown_job_request(rf): request = rf.post("/") request.user = UserFactory() with pytest.raises(Http404): JobRequestCancel.as_view()(request, pk=0)