from __future__ import annotations from unittest.mock import patch from govoplan_files.backend.operational_checks import managed_storage_roundtrip_check from govoplan_files.backend.storage.backends import LocalFilesystemStorageBackend def test_managed_storage_roundtrip_removes_probe(tmp_path) -> None: backend = LocalFilesystemStorageBackend(tmp_path) with patch( "govoplan_files.backend.operational_checks.get_storage_backend", return_value=backend, ): result = managed_storage_roundtrip_check() assert result.state == "ok" assert result.metrics["backend"] == "local" assert list(tmp_path.rglob("*.bin")) == [] def test_managed_storage_roundtrip_fails_closed() -> None: class BrokenBackend: name = "broken" def put_bytes(self, *_args, **_kwargs): raise OSError("private provider detail") def delete(self, *_args, **_kwargs): return None with patch( "govoplan_files.backend.operational_checks.get_storage_backend", return_value=BrokenBackend(), ): result = managed_storage_roundtrip_check() assert result.state == "error" assert result.readiness_critical is True assert "private provider detail" not in result.detail