42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from types import SimpleNamespace
|
|
|
|
from backend.app.connectors.portainer import PortainerConnector
|
|
from backend.app.core.config import settings
|
|
|
|
|
|
def test_restart_request_allows_docker_grace_period_without_shortening_container_timeout(monkeypatch):
|
|
previous = dict(settings.apis)
|
|
settings.apis.update({
|
|
"PORTAINER_URL": "https://portainer.example.test",
|
|
"PORTAINER_API_KEY": "test-key",
|
|
"PORTAINER_ENDPOINT_ID": "9",
|
|
})
|
|
connector = PortainerConnector()
|
|
monkeypatch.setattr(
|
|
connector,
|
|
"list_containers",
|
|
lambda: {
|
|
"status": "ok",
|
|
"containers": [{"id": "runner-id", "name": "itworx-validation-runner-2", "appId": "itworx-validation-runner-2"}],
|
|
},
|
|
)
|
|
calls: list[tuple[str, str, dict]] = []
|
|
|
|
def request(method: str, path: str, **kwargs):
|
|
calls.append((method, path, kwargs))
|
|
return SimpleNamespace(status_code=204)
|
|
|
|
monkeypatch.setattr(connector, "_request", request)
|
|
try:
|
|
result = connector.restart_container("itworx-validation-runner-2")
|
|
finally:
|
|
settings.apis.clear()
|
|
settings.apis.update(previous)
|
|
|
|
assert result["status"] == "ok"
|
|
assert calls == [(
|
|
"POST",
|
|
"/api/endpoints/9/docker/containers/runner-id/restart",
|
|
{"timeout": 30.0},
|
|
)]
|