Initial curated ITWorx_MCP_Hub source from 368fba691ea8d23403b4d56b53b5ec670d7c5020
This commit is contained in:
commit
cb5be898ea
663 files changed
+82674
No files matched your search
@@ -0,0 +1,84 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
import pytest
|
||||
|
||||
from connectors.gitea import FakeGiteaServer
|
||||
from packages.connector_kit import (
|
||||
GiteaClient,
|
||||
GiteaError,
|
||||
GiteaSettings,
|
||||
RegisteredRepository,
|
||||
StaticTokenProvider,
|
||||
)
|
||||
|
||||
PROJECT_ID = UUID("11111111-1111-1111-1111-111111111111")
|
||||
|
||||
|
||||
def _client(version: str) -> tuple[GiteaClient, FakeGiteaServer, RegisteredRepository]:
|
||||
fixture = FakeGiteaServer(gitea_version=version)
|
||||
client = GiteaClient(
|
||||
GiteaSettings(
|
||||
base_url="http://gitea.test",
|
||||
token_reference="docker-secret://gitea_mcp_token", # noqa: S106
|
||||
allow_insecure_http_for_tests=True,
|
||||
),
|
||||
StaticTokenProvider("fixture-token"),
|
||||
transport=fixture.transport(),
|
||||
)
|
||||
repository = RegisteredRepository(
|
||||
repository_ref="hub-repository",
|
||||
project_id=PROJECT_ID,
|
||||
owner="acme",
|
||||
name="hub",
|
||||
source_uri="itworx-git://hub/hub-repository",
|
||||
private=True,
|
||||
)
|
||||
return client, fixture, repository
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("version", "expected_key"),
|
||||
[
|
||||
("1.14.0", "Do"),
|
||||
("1.14.7", "Do"),
|
||||
("1.25.5", "Do"),
|
||||
("1.26.4", "do"),
|
||||
("1.27.0", "do"),
|
||||
("1.27.2", "do"),
|
||||
("28.0.0", "do"),
|
||||
("28.1.3", "do"),
|
||||
],
|
||||
)
|
||||
def test_supported_merge_versions_use_one_version_probe_and_one_write(
|
||||
version: str, expected_key: str
|
||||
) -> None:
|
||||
client, fixture, repository = _client(version)
|
||||
try:
|
||||
client.merge_pull_request(repository, 7, method="squash", head_commit_id="e" * 40)
|
||||
assert fixture.recorded_paths.count("/api/v1/version") == 1
|
||||
assert fixture.recorded_paths.count("/api/v1/repos/acme/hub/pulls/7/merge") == 1
|
||||
merge_body = next(
|
||||
body for body in fixture.recorded_bodies if body.get(expected_key) == "squash"
|
||||
)
|
||||
assert merge_body["force_merge"] is False
|
||||
assert merge_body["merge_when_checks_succeed"] is False
|
||||
assert merge_body["delete_branch_after_merge"] is False
|
||||
assert ("Do" if expected_key == "do" else "do") not in merge_body
|
||||
finally:
|
||||
client.close()
|
||||
|
||||
|
||||
def test_unknown_future_version_fails_before_merge_write() -> None:
|
||||
client, fixture, repository = _client("29.0.0")
|
||||
try:
|
||||
with pytest.raises(
|
||||
GiteaError,
|
||||
match="1.14, 1.25, 1.26, 1.27, or 28.x",
|
||||
) as raised:
|
||||
client.merge_pull_request(repository, 7, method="squash", head_commit_id="e" * 40)
|
||||
assert raised.value.code == "GITEA_VERSION_UNSUPPORTED"
|
||||
assert "/api/v1/repos/acme/hub/pulls/7/merge" not in fixture.recorded_paths
|
||||
finally:
|
||||
client.close()
|
||||
Reference in new issue
Block a user