GRM-1: feat: initial implementation of Gitea Runner Manager

This commit is contained in:
Emil Simeonov
2026-06-17 18:15:28 +02:00
commit 170b53ad28
52 changed files with 2191 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
"""Integration tests for runner provisioning."""
from unittest.mock import MagicMock, patch
from gitea_runner_manager.runner_manager import RunnerManager
class TestProvisionIntegration:
def test_full_install_flow(self) -> None:
api = MagicMock()
api.base_url = "https://git.example.com"
api.create_registration_token.return_value = "test-token"
manager = RunnerManager(api)
with patch("subprocess.run") as mock_run:
mock_run.return_value = MagicMock(returncode=0)
manager.install("192.168.1.10", "ubuntu", name="integration-runner")
mock_run.assert_called_once()
cmd = mock_run.call_args[0][0]
assert "install-runner.yml" in " ".join(cmd)
assert "registration_token=test-token" in " ".join(cmd)
assert "runner_name=integration-runner" in " ".join(cmd)
def test_update_flow(self) -> None:
api = MagicMock()
manager = RunnerManager(api)
with patch("subprocess.run") as mock_run:
mock_run.return_value = MagicMock(returncode=0)
manager.update("192.168.1.10", "ubuntu")
mock_run.assert_called_once()
cmd = mock_run.call_args[0][0]
assert "update-runner.yml" in " ".join(cmd)