Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_origin_save.py
# Copyright (C) 2018-2021 The Software Heritage developers | # Copyright (C) 2018-2021 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from datetime import datetime, timedelta | from datetime import datetime, timedelta | ||||
import uuid | import uuid | ||||
import pytest | import pytest | ||||
from django.contrib.auth.models import User | |||||
from django.core.exceptions import ObjectDoesNotExist | from django.core.exceptions import ObjectDoesNotExist | ||||
from django.utils import timezone | from django.utils import timezone | ||||
from swh.web.auth.utils import SWH_AMBASSADOR_PERMISSION | from swh.web.auth.utils import SWH_AMBASSADOR_PERMISSION | ||||
from swh.web.common.models import ( | from swh.web.common.models import ( | ||||
SAVE_REQUEST_ACCEPTED, | SAVE_REQUEST_ACCEPTED, | ||||
SAVE_REQUEST_PENDING, | SAVE_REQUEST_PENDING, | ||||
SAVE_REQUEST_REJECTED, | SAVE_REQUEST_REJECTED, | ||||
▲ Show 20 Lines • Show All 499 Lines • ▼ Show 20 Lines | ): | ||||
assert response.wsgi_request.user.id is not None | assert response.wsgi_request.user.id is not None | ||||
user_id = str(response.wsgi_request.user.id) | user_id = str(response.wsgi_request.user.id) | ||||
sor = SaveOriginRequest.objects.get(user_ids=f'"{user_id}"') | sor = SaveOriginRequest.objects.get(user_ids=f'"{user_id}"') | ||||
assert sor.user_ids == f'"{user_id}"' | assert sor.user_ids == f'"{user_id}"' | ||||
def test_create_pending_save_request_multiple_authenticated_users( | def test_create_pending_save_request_multiple_authenticated_users( | ||||
api_client, swh_scheduler | api_client, swh_scheduler, regular_user, regular_user2 | ||||
): | ): | ||||
origin_url = "https://some.git.hosters/user/repo3" | origin_url = "https://some.git.hosters/user/repo3" | ||||
first_user = User.objects.create_user(username="first_user", password="") | |||||
second_user = User.objects.create_user(username="second_user", password="") | |||||
url = reverse( | url = reverse( | ||||
"api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url}, | "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url}, | ||||
) | ) | ||||
api_client.force_login(first_user) | api_client.force_login(regular_user) | ||||
check_api_post_response(api_client, url, status_code=200) | check_api_post_response(api_client, url, status_code=200) | ||||
api_client.force_login(second_user) | api_client.force_login(regular_user2) | ||||
check_api_post_response(api_client, url, status_code=200) | check_api_post_response(api_client, url, status_code=200) | ||||
assert SaveOriginRequest.objects.get(user_ids__contains=f'"{first_user.id}"') | assert SaveOriginRequest.objects.get(user_ids__contains=f'"{regular_user.id}"') | ||||
assert SaveOriginRequest.objects.get(user_ids__contains=f'"{second_user.id}"') | assert SaveOriginRequest.objects.get(user_ids__contains=f'"{regular_user2.id}"') |