34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
"""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)
|