GRM-37: refactor: Split CI scripts, fix release PYTHONPATH, dynamic runner discovery

This commit is contained in:
2026-06-21 20:44:39 +00:00
parent 56eb241b77
commit 5511cba1b0
38 changed files with 908 additions and 422 deletions
+7 -7
View File
@@ -1,4 +1,4 @@
"""Unit tests for scripts/post_merge.py."""
"""Unit tests for scripts/ci/post_merge.py."""
import http
from unittest.mock import MagicMock, patch
@@ -8,7 +8,7 @@ import pytest
from click.testing import CliRunner
from gitea_runner_manager.exceptions import APIError
from scripts.post_merge import (
from scripts.ci.post_merge import (
build_comment,
extract_conventional_msg,
extract_task_id,
@@ -90,7 +90,7 @@ class TestResolveTaskId:
class TestMain:
@patch.dict("os.environ", {"VIKUNJA_TOKEN": "tok"})
@patch("scripts.post_merge.VikunjaClient")
@patch("scripts.ci.post_merge.VikunjaClient")
def test_full_flow(self, mock_client_cls: MagicMock) -> None:
mock_client = MagicMock()
mock_client.list_project_tasks.return_value = [
@@ -108,7 +108,7 @@ class TestMain:
mock_client.update_task.assert_called_once_with(267, done=True)
@patch.dict("os.environ", {"VIKUNJA_TOKEN": "tok"})
@patch("scripts.post_merge.VikunjaClient")
@patch("scripts.ci.post_merge.VikunjaClient")
def test_no_commit_sha(self, mock_client_cls: MagicMock) -> None:
mock_client = MagicMock()
mock_client.list_project_tasks.return_value = [
@@ -137,7 +137,7 @@ class TestMain:
assert "skipping" in result.output
@patch.dict("os.environ", {"VIKUNJA_TOKEN": "tok"})
@patch("scripts.post_merge.VikunjaClient")
@patch("scripts.ci.post_merge.VikunjaClient")
def test_resolve_failure_propagates(self, mock_client_cls: MagicMock) -> None:
mock_client = MagicMock()
mock_client.list_project_tasks.return_value = []
@@ -148,7 +148,7 @@ class TestMain:
assert "Could not find" in result.output
@patch.dict("os.environ", {"VIKUNJA_TOKEN": "tok"})
@patch("scripts.post_merge.VikunjaClient")
@patch("scripts.ci.post_merge.VikunjaClient")
def test_post_comment_failure_raises_click(self, mock_client_cls: MagicMock) -> None:
mock_client = MagicMock()
mock_client.list_project_tasks.return_value = [
@@ -162,7 +162,7 @@ class TestMain:
assert "HTTP" in result.output
@patch.dict("os.environ", {"VIKUNJA_TOKEN": "tok"})
@patch("scripts.post_merge.VikunjaClient")
@patch("scripts.ci.post_merge.VikunjaClient")
def test_mark_done_failure_raises_click(self, mock_client_cls: MagicMock) -> None:
mock_client = MagicMock()
mock_client.list_project_tasks.return_value = [