Changeset View
Changeset View
Standalone View
Standalone View
swh/web/save_origin_webhooks/tests/test_gitlab.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 json | import json | ||||
import os | import os | ||||
import pytest | import pytest | ||||
from .utils import ( | from .utils import ( | ||||
origin_save_webhook_receiver_invalid_content_type_test, | origin_save_webhook_receiver_invalid_content_type_test, | ||||
origin_save_webhook_receiver_invalid_event_test, | origin_save_webhook_receiver_invalid_event_test, | ||||
origin_save_webhook_receiver_invalid_request_test, | origin_save_webhook_receiver_invalid_request_test, | ||||
origin_save_webhook_receiver_no_repo_url_test, | origin_save_webhook_receiver_no_repo_url_test, | ||||
origin_save_webhook_receiver_private_repo_test, | |||||
origin_save_webhook_receiver_test, | origin_save_webhook_receiver_test, | ||||
) | ) | ||||
@pytest.mark.django_db | @pytest.mark.django_db | ||||
def test_origin_save_gitlab_webhook_receiver(api_client, swh_scheduler, datadir): | def test_origin_save_gitlab_webhook_receiver(api_client, swh_scheduler, datadir): | ||||
with open(os.path.join(datadir, "gitlab_webhook_payload.json"), "rb") as payload: | with open(os.path.join(datadir, "gitlab_webhook_payload.json"), "rb") as payload: | ||||
origin_save_webhook_receiver_test( | origin_save_webhook_receiver_test( | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | with open(os.path.join(datadir, "gitlab_webhook_payload.json"), "rb") as payload: | ||||
forge_type="GitLab", | forge_type="GitLab", | ||||
http_headers={ | http_headers={ | ||||
"User-Agent": "GitLab/15.6.0-pre", | "User-Agent": "GitLab/15.6.0-pre", | ||||
"X-Gitlab-Event": "Push Hook", | "X-Gitlab-Event": "Push Hook", | ||||
}, | }, | ||||
payload=payload, | payload=payload, | ||||
api_client=api_client, | api_client=api_client, | ||||
) | ) | ||||
def test_origin_save_gitlab_webhook_receiver_private_repo(api_client, datadir): | |||||
with open(os.path.join(datadir, "gitlab_webhook_payload.json"), "rb") as payload: | |||||
payload = json.load(payload) | |||||
payload["repository"]["visibility_level"] = 0 | |||||
origin_save_webhook_receiver_private_repo_test( | |||||
forge_type="GitLab", | |||||
http_headers={ | |||||
"User-Agent": "GitLab/15.6.0-pre", | |||||
"X-Gitlab-Event": "Push Hook", | |||||
}, | |||||
payload=payload, | |||||
api_client=api_client, | |||||
expected_origin_url="https://gitlab.com/johndoe/test.git", | |||||
) |