|
3 | 3 | from django.core.cache import cache |
4 | 4 | from checks.models import BatchRequest, BatchRequestType, BatchUser, BatchRequestStatus |
5 | 5 | from interface.batch.util import get_request, register_request |
| 6 | +from interface.batch.views import results |
6 | 7 | from django.test.client import RequestFactory |
7 | 8 | import pytest |
8 | 9 | from interface.batch.util import batch_async_generate_results |
@@ -68,15 +69,27 @@ def test_batch_request_result_generation(db, client, mocker): |
68 | 69 | batch_request.save() |
69 | 70 |
|
70 | 71 | # if batch request is done, a batch_async_generate_results task should be put on the queue to generate the results |
71 | | - get_request(request, batch_request, test_user) |
| 72 | + response = get_request(request, batch_request, test_user) |
| 73 | + assert response.status_code == 200 |
| 74 | + assert json.loads(response.content)["request"]["status"] == "generating" |
72 | 75 | assert batch_async_generate_results.delay.call_count == 1 |
73 | 76 |
|
74 | 77 | # there should not be an additional task put on the queue when one is already present |
75 | | - get_request(request, batch_request, test_user) |
| 78 | + response = get_request(request, batch_request, test_user) |
| 79 | + assert response.status_code == 200 |
| 80 | + assert json.loads(response.content)["request"]["status"] == "generating" |
| 81 | + assert batch_async_generate_results.delay.call_count == 1 |
| 82 | + |
| 83 | + # when directly accessing results there should also not be a extra task added to the queue |
| 84 | + assert ( |
| 85 | + results(request, batch_request.request_id, batch_user=test_user).status_code == 400 |
| 86 | + ), "should return `bad_client_request_response`" |
76 | 87 | assert batch_async_generate_results.delay.call_count == 1 |
77 | 88 |
|
78 | 89 | # if the cache expires a new batch_async_generate_results task can be added |
79 | 90 | lock_id = redis_id.batch_results_request_lock.id.format(batch_request.request_id) |
80 | 91 | cache.delete(lock_id) |
81 | | - get_request(request, batch_request, test_user) |
| 92 | + response = get_request(request, batch_request, test_user) |
| 93 | + assert response.status_code == 200 |
| 94 | + assert json.loads(response.content)["request"]["status"] == "generating" |
82 | 95 | assert batch_async_generate_results.delay.call_count == 2 |
0 commit comments