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}, )]