Changeset View
Changeset View
Standalone View
Standalone View
swh/web/save_code_now/tests/test_origin_save_api.py
Show All 14 Lines | |||||
from swh.web.auth.utils import API_SAVE_ORIGIN_PERMISSION, SWH_AMBASSADOR_PERMISSION | from swh.web.auth.utils import API_SAVE_ORIGIN_PERMISSION, SWH_AMBASSADOR_PERMISSION | ||||
from swh.web.save_code_now.models import ( | from swh.web.save_code_now.models import ( | ||||
SAVE_REQUEST_ACCEPTED, | SAVE_REQUEST_ACCEPTED, | ||||
SAVE_REQUEST_PENDING, | SAVE_REQUEST_PENDING, | ||||
SAVE_REQUEST_REJECTED, | SAVE_REQUEST_REJECTED, | ||||
SAVE_TASK_FAILED, | SAVE_TASK_FAILED, | ||||
SAVE_TASK_NOT_CREATED, | SAVE_TASK_NOT_CREATED, | ||||
SAVE_TASK_NOT_YET_SCHEDULED, | SAVE_TASK_NOT_YET_SCHEDULED, | ||||
SAVE_TASK_RUNNING, | |||||
SAVE_TASK_SCHEDULED, | SAVE_TASK_SCHEDULED, | ||||
SAVE_TASK_SUCCEEDED, | SAVE_TASK_SUCCEEDED, | ||||
VISIT_STATUS_FAILED, | VISIT_STATUS_FAILED, | ||||
VISIT_STATUS_FULL, | VISIT_STATUS_FULL, | ||||
SaveAuthorizedOrigin, | SaveAuthorizedOrigin, | ||||
SaveOriginRequest, | SaveOriginRequest, | ||||
SaveUnauthorizedOrigin, | SaveUnauthorizedOrigin, | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 241 Lines • ▼ Show 20 Lines | check_save_request_status( | ||||
expected_request_status=SAVE_REQUEST_ACCEPTED, | expected_request_status=SAVE_REQUEST_ACCEPTED, | ||||
expected_task_status=SAVE_TASK_FAILED, | expected_task_status=SAVE_TASK_FAILED, | ||||
scheduler_task_status="disabled", | scheduler_task_status="disabled", | ||||
scheduler_task_run_status="failed", | scheduler_task_run_status="failed", | ||||
visit_status=VISIT_STATUS_FAILED, | visit_status=VISIT_STATUS_FAILED, | ||||
) | ) | ||||
def test_create_save_request_no_duplicate(api_client, mocker, swh_scheduler): | def test_create_save_request_no_duplicate_if_already_scheduled( | ||||
api_client, mocker, swh_scheduler | |||||
): | |||||
origin_url = "https://github.com/webpack/webpack" | origin_url = "https://github.com/webpack/webpack" | ||||
check_created_save_request_status( | check_created_save_request_status( | ||||
api_client, | api_client, | ||||
mocker, | mocker, | ||||
origin_url, | origin_url, | ||||
expected_request_status=SAVE_REQUEST_ACCEPTED, | expected_request_status=SAVE_REQUEST_ACCEPTED, | ||||
expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, | expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, | ||||
Show All 23 Lines | check_created_save_request_status( | ||||
expected_task_status=SAVE_TASK_SCHEDULED, | expected_task_status=SAVE_TASK_SCHEDULED, | ||||
) | ) | ||||
sors = list( | sors = list( | ||||
SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) | SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) | ||||
) | ) | ||||
assert len(sors) == 1 | assert len(sors) == 1 | ||||
def test_create_save_request_if_previous_one_is_running( | |||||
api_client, mocker, swh_scheduler | |||||
): | |||||
origin_url = "https://github.com/webpack/webpack" | |||||
check_created_save_request_status( | |||||
api_client, | |||||
mocker, | |||||
origin_url, | |||||
expected_request_status=SAVE_REQUEST_ACCEPTED, | |||||
expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, | |||||
) | |||||
check_save_request_status( | |||||
api_client, | |||||
mocker, | |||||
swh_scheduler, | |||||
origin_url, | |||||
expected_request_status=SAVE_REQUEST_ACCEPTED, | |||||
expected_task_status=SAVE_TASK_RUNNING, | |||||
scheduler_task_status="next_run_scheduled", | |||||
scheduler_task_run_status="started", | |||||
) | |||||
sors = list( | |||||
SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) | |||||
) | |||||
assert len(sors) == 1 | |||||
check_created_save_request_status( | |||||
api_client, | |||||
mocker, | |||||
origin_url, | |||||
expected_request_status=SAVE_REQUEST_ACCEPTED, | |||||
expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, | |||||
) | |||||
sors = list( | |||||
SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) | |||||
) | |||||
assert len(sors) == 2 | |||||
def test_get_save_requests_unknown_origin(api_client, swh_scheduler): | def test_get_save_requests_unknown_origin(api_client, swh_scheduler): | ||||
unknown_origin_url = "https://gitlab.com/foo/bar" | unknown_origin_url = "https://gitlab.com/foo/bar" | ||||
url = reverse( | url = reverse( | ||||
"api-1-save-origin", | "api-1-save-origin", | ||||
url_args={"visit_type": "git", "origin_url": unknown_origin_url}, | url_args={"visit_type": "git", "origin_url": unknown_origin_url}, | ||||
) | ) | ||||
response = check_api_get_responses(api_client, url, status_code=404) | response = check_api_get_responses(api_client, url, status_code=404) | ||||
assert response.data == { | assert response.data == { | ||||
▲ Show 20 Lines • Show All 330 Lines • Show Last 20 Lines |