Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_add_forge_now.py
# Copyright (C) 2022 The Software Heritage developers | # Copyright (C) 2022 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 | ||||
import datetime | import datetime | ||||
import threading | import threading | ||||
import time | import time | ||||
from typing import Dict | from typing import Dict | ||||
from urllib.parse import urlencode | from urllib.parse import urlencode, urlparse | ||||
import iso8601 | import iso8601 | ||||
import pytest | import pytest | ||||
from swh.web.add_forge_now.models import Request | from swh.web.add_forge_now.models import Request | ||||
from swh.web.common.utils import reverse | from swh.web.common.utils import reverse | ||||
from swh.web.config import get_config | from swh.web.config import get_config | ||||
from swh.web.inbound_email.utils import get_address_for_pk | from swh.web.inbound_email.utils import get_address_for_pk | ||||
▲ Show 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | assert resp.data == { | ||||
"status": "PENDING", | "status": "PENDING", | ||||
"submission_date": resp.data["submission_date"], | "submission_date": resp.data["submission_date"], | ||||
"submitter_name": regular_user.username, | "submitter_name": regular_user.username, | ||||
"submitter_email": regular_user.email, | "submitter_email": regular_user.email, | ||||
"submitter_forward_username": expected_consent_bool, | "submitter_forward_username": expected_consent_bool, | ||||
"last_moderator": resp.data["last_moderator"], | "last_moderator": resp.data["last_moderator"], | ||||
"last_modified_date": resp.data["last_modified_date"], | "last_modified_date": resp.data["last_modified_date"], | ||||
"inbound_email_address": inbound_email_for_pk(resp.data["id"]), | "inbound_email_address": inbound_email_for_pk(resp.data["id"]), | ||||
"forge_domain": urlparse(add_forge_data["forge_url"]).netloc, | |||||
} | } | ||||
assert date_before < iso8601.parse_date(resp.data["submission_date"]) < date_after | assert date_before < iso8601.parse_date(resp.data["submission_date"]) < date_after | ||||
request = Request.objects.all().last() | request = Request.objects.all().last() | ||||
assert request.forge_url == add_forge_data["forge_url"] | assert request.forge_url == add_forge_data["forge_url"] | ||||
assert request.submitter_name == regular_user.username | assert request.submitter_name == regular_user.username | ||||
Show All 21 Lines | assert resp.data == { | ||||
"id": resp.data["id"], | "id": resp.data["id"], | ||||
"status": "PENDING", | "status": "PENDING", | ||||
"submission_date": resp.data["submission_date"], | "submission_date": resp.data["submission_date"], | ||||
"submitter_name": regular_user.username, | "submitter_name": regular_user.username, | ||||
"submitter_email": regular_user.email, | "submitter_email": regular_user.email, | ||||
"last_moderator": resp.data["last_moderator"], | "last_moderator": resp.data["last_moderator"], | ||||
"last_modified_date": resp.data["last_modified_date"], | "last_modified_date": resp.data["last_modified_date"], | ||||
"inbound_email_address": inbound_email_for_pk(1), | "inbound_email_address": inbound_email_for_pk(1), | ||||
"forge_domain": urlparse(ADD_FORGE_DATA_FORGE1["forge_url"]).netloc, | |||||
} | } | ||||
assert date_before < iso8601.parse_date(resp.data["submission_date"]) < date_after | assert date_before < iso8601.parse_date(resp.data["submission_date"]) < date_after | ||||
request = Request.objects.all()[0] | request = Request.objects.all()[0] | ||||
assert request.forge_url == ADD_FORGE_DATA_FORGE1["forge_url"] | assert request.forge_url == ADD_FORGE_DATA_FORGE1["forge_url"] | ||||
assert request.submitter_name == regular_user.username | assert request.submitter_name == regular_user.username | ||||
▲ Show 20 Lines • Show All 208 Lines • ▼ Show 20 Lines | add_forge_request = { | ||||
"status": "PENDING", | "status": "PENDING", | ||||
"submission_date": resp.data[1]["submission_date"], | "submission_date": resp.data[1]["submission_date"], | ||||
"submitter_name": regular_user.username, | "submitter_name": regular_user.username, | ||||
"submitter_email": regular_user.email, | "submitter_email": regular_user.email, | ||||
"last_moderator": resp.data[1]["last_moderator"], | "last_moderator": resp.data[1]["last_moderator"], | ||||
"last_modified_date": resp.data[1]["last_modified_date"], | "last_modified_date": resp.data[1]["last_modified_date"], | ||||
"id": resp.data[1]["id"], | "id": resp.data[1]["id"], | ||||
"inbound_email_address": inbound_email_for_pk(resp.data[1]["id"]), | "inbound_email_address": inbound_email_for_pk(resp.data[1]["id"]), | ||||
"forge_domain": urlparse(ADD_FORGE_DATA_FORGE1["forge_url"]).netloc, | |||||
} | } | ||||
other_forge_request = { | other_forge_request = { | ||||
**ADD_FORGE_DATA_FORGE2, | **ADD_FORGE_DATA_FORGE2, | ||||
"status": "PENDING", | "status": "PENDING", | ||||
"submission_date": resp.data[0]["submission_date"], | "submission_date": resp.data[0]["submission_date"], | ||||
"submitter_name": regular_user.username, | "submitter_name": regular_user.username, | ||||
"submitter_email": regular_user.email, | "submitter_email": regular_user.email, | ||||
"last_moderator": resp.data[0]["last_moderator"], | "last_moderator": resp.data[0]["last_moderator"], | ||||
"last_modified_date": resp.data[0]["last_modified_date"], | "last_modified_date": resp.data[0]["last_modified_date"], | ||||
"id": resp.data[0]["id"], | "id": resp.data[0]["id"], | ||||
"inbound_email_address": inbound_email_for_pk(resp.data[0]["id"]), | "inbound_email_address": inbound_email_for_pk(resp.data[0]["id"]), | ||||
"forge_domain": urlparse(ADD_FORGE_DATA_FORGE2["forge_url"]).netloc, | |||||
} | } | ||||
assert resp.data == [other_forge_request, add_forge_request] | assert resp.data == [other_forge_request, add_forge_request] | ||||
@pytest.mark.django_db(transaction=True, reset_sequences=True) | @pytest.mark.django_db(transaction=True, reset_sequences=True) | ||||
def test_add_forge_request_list_pagination( | def test_add_forge_request_list_pagination( | ||||
api_client, regular_user, api_request_factory | api_client, regular_user, api_request_factory | ||||
▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | assert resp.data == { | ||||
"id": 1, | "id": 1, | ||||
"status": "WAITING_FOR_FEEDBACK", | "status": "WAITING_FOR_FEEDBACK", | ||||
"submission_date": submission_date, | "submission_date": submission_date, | ||||
"submitter_name": regular_user.username, | "submitter_name": regular_user.username, | ||||
"submitter_email": regular_user.email, | "submitter_email": regular_user.email, | ||||
"last_moderator": add_forge_moderator.username, | "last_moderator": add_forge_moderator.username, | ||||
"last_modified_date": resp.data["history"][1]["date"], | "last_modified_date": resp.data["history"][1]["date"], | ||||
"inbound_email_address": inbound_email_for_pk(1), | "inbound_email_address": inbound_email_for_pk(1), | ||||
"forge_domain": urlparse(ADD_FORGE_DATA_FORGE1["forge_url"]).netloc, | |||||
}, | }, | ||||
"history": [ | "history": [ | ||||
{ | { | ||||
"id": 1, | "id": 1, | ||||
"text": "", | "text": "", | ||||
"actor": regular_user.username, | "actor": regular_user.username, | ||||
"actor_role": "SUBMITTER", | "actor_role": "SUBMITTER", | ||||
"date": resp.data["history"][0]["date"], | "date": resp.data["history"][0]["date"], | ||||
Show All 18 Lines |