43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
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
|
|
|