def test_admin_get_overview(admin_client): create_task_results(2, admin_client) (overview, ) = get_results_overview(admin_client) assert overview["task_results_available"] == 2 assert overview[ "archive"] is None # indicates no acquisition data available assert overview["task_results"] # is non-empty string assert overview["schedule_entry"] # is non-empty string
def test_task_result_overview_serializer(user_client, rf): from schedule.models import ScheduleEntry create_task_results(1, user_client) entries = ScheduleEntry.objects.all() context = {"request": None} r = TaskResultsOverviewSerializer(entries, many=True, context=context) assert r.data # TODO: complete assertions assert r
def test_task_result_serializer(user_client): create_task_results(1, user_client) tr = TaskResult.objects.get() context = {"request": None} r = TaskResultSerializer(tr, context=context) assert r.data["task_id"] == 1 assert r.data["self"] == "/api/v1/tasks/completed/test/1/" assert r.data["schedule_entry"] == "/api/v1/schedule/test/" assert r.data["detail"] == "" assert r.data["status"] == "success" assert r.data["duration"] == "00:00:00.000001"
def test_single_result_response(user_client): entry_name = create_task_results(1, user_client) result, = get_result_list(user_client, entry_name) task_id = 1 expected_url = reverse_result_detail(entry_name, task_id) assert result["self"] == expected_url assert result["task_id"] == task_id
def test_multiple_result_response(user_client, test_scheduler): entry_name = create_task_results(3, user_client) results = get_result_list(user_client, entry_name) assert len(results) == 3 for i, acq in enumerate(results, start=1): expected_url = reverse_result_detail(entry_name, i) assert acq["self"] == expected_url assert acq["task_id"] == i
def test_delete_list(user_client): # If result doesn't exist, expect 404 url = reverse_result_list("doesntexist") response = user_client.delete(url, **HTTPS_KWARG) validate_response(response, status.HTTP_404_NOT_FOUND) # If result does exist, expect 204 entry_name = create_task_results(1, user_client) url = reverse_result_list(entry_name) response = user_client.delete(url, **HTTPS_KWARG) validate_response(response, status.HTTP_204_NO_CONTENT)
def test_user_cannot_get_overview(user_client, admin_client): create_task_results(2, admin_client) url = reverse_results_overview() response = user_client.get(url, **HTTPS_KWARG) rjson = validate_response(response, status.HTTP_403_FORBIDDEN) assert "results" not in rjson
def test_str(admin_client): create_task_results(1, admin_client) str(TaskResult.objects.get())
def test_user_can_view_others_result_details(user_client, alt_user_client): """A user should be able to view results created by others.""" entry_name = create_task_results(1, user_client) url = reverse_result_detail(entry_name, 1) response = alt_user_client.get(url, **HTTPS_KWARG) validate_response(response, status.HTTP_200_OK)
def test_user_cannot_view_result_list(admin_client, user_client): entry_name = create_task_results(1, admin_client) url = reverse_result_list(entry_name) response = user_client.get(url, **HTTPS_KWARG) rjson = validate_response(response, status.HTTP_403_FORBIDDEN) return "results" not in rjson
def test_user_cannot_view_result_details(admin_client, user_client): """A user should be able to view results created by others.""" entry_name = create_task_results(1, admin_client) url = reverse_result_detail(entry_name, 1) response = user_client.get(url, **HTTPS_KWARG) validate_response(response, status.HTTP_403_FORBIDDEN)
def test_admin_can_view_own_result_details(admin_client): """A user should be able to view results they create.""" entry_name = create_task_results(1, admin_client) url = reverse_result_detail(entry_name, 1) response = admin_client.get(url, **HTTPS_KWARG) validate_response(response, status.HTTP_200_OK)
def test_max_results(user_client): """TaskResults are not managed by user, so oldest should be deleted.""" create_task_results(TEST_MAX_TASK_RESULTS + 10, user_client) assert TaskResult.objects.count() == TEST_MAX_TASK_RESULTS
def test_str(user_client): create_task_results(1, user_client) str(TaskResult.objects.get())