|
| 1 | +from io import BytesIO |
| 2 | + |
1 | 3 | import pytest |
2 | 4 | import requests |
3 | 5 | from django.contrib import messages |
@@ -499,6 +501,41 @@ def test_requests_release_jobserver_403(client_with_permission, release_files_st |
499 | 501 | assert response.status_code == 403 |
500 | 502 |
|
501 | 503 |
|
| 504 | +@pytest.mark.parametrize( |
| 505 | + "content_type,content,should_contain_iframe", |
| 506 | + [ |
| 507 | + ("text/plain", b"An error from job-server", False), |
| 508 | + ("text/html", b"<p>An error from job-server</p>", True) |
| 509 | + ] |
| 510 | +) |
| 511 | +def test_requests_release_jobserver_403_with_debug( |
| 512 | + client_with_permission, release_files_stubber, settings, |
| 513 | + content_type, content, should_contain_iframe |
| 514 | +): |
| 515 | + settings.DEBUG = True |
| 516 | + release_request = factories.create_release_request( |
| 517 | + "workspace", |
| 518 | + id="request_id", |
| 519 | + status=Status.SUBMITTED, |
| 520 | + ) |
| 521 | + factories.write_request_file(release_request, "test/file.txt", "test") |
| 522 | + |
| 523 | + response = requests.Response() |
| 524 | + response.status_code = 403 |
| 525 | + response.headers = {"Content-Type": content_type} |
| 526 | + response.raw = BytesIO(content) |
| 527 | + api403 = requests.HTTPError(response=response) |
| 528 | + release_files_stubber(release_request, body=api403) |
| 529 | + |
| 530 | + # test 403 is handled |
| 531 | + response = client_with_permission.post("/requests/release/request_id") |
| 532 | + # DEBUG is on, so we return the job-server error |
| 533 | + assert response.status_code == 200 |
| 534 | + assert "An error from job-server" in response.rendered_content |
| 535 | + contains_iframe = "<iframe" in response.rendered_content |
| 536 | + assert contains_iframe == should_contain_iframe |
| 537 | + |
| 538 | + |
502 | 539 | def test_requests_release_files_404(client_with_permission, release_files_stubber): |
503 | 540 | release_request = factories.create_release_request( |
504 | 541 | "workspace", |
|
0 commit comments