fix(blog): confirmer l'état mémoire après sauvegarde
This commit is contained in:
@@ -425,4 +425,41 @@ def test_atomic_save_preserves_on_error(tmp_path: Path) -> None:
|
||||
assert state.get_known_guids() == frozenset({"original-guid-1", "original-guid-2", "new-guid"})
|
||||
|
||||
|
||||
def test_acknowledge_does_not_advance_memory_when_save_fails(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
"""Conserve l'état précédent en mémoire si l'acquittement ne peut pas être sauvegardé.
|
||||
|
||||
:param tmp_path: Fixture pytest pour un répertoire temporaire.
|
||||
:return: None
|
||||
"""
|
||||
state_file = tmp_path / "state.json"
|
||||
state = BlogRSSState(state_file)
|
||||
state.add_guids(["existing-guid"])
|
||||
state.update_cache_headers("old-etag", "old-last-modified")
|
||||
article = BlogArticle(
|
||||
id="new-guid",
|
||||
title="Article",
|
||||
url="https://example.com/article",
|
||||
published_at=datetime(2026, 9, 12, 8, 0, tzinfo=UTC),
|
||||
updated_at=None,
|
||||
category=None,
|
||||
author=None,
|
||||
content_html="<p>Contenu</p>",
|
||||
content_text="Contenu",
|
||||
)
|
||||
|
||||
with patch.object(Path, "replace", side_effect=OSError("replace failed")):
|
||||
state.acknowledge(
|
||||
BlogRSSFetchResult(
|
||||
articles=(article,),
|
||||
etag="new-etag",
|
||||
last_modified="new-last-modified",
|
||||
)
|
||||
)
|
||||
|
||||
assert state.get_known_guids() == frozenset({"existing-guid"})
|
||||
assert state.get_cache_headers() == ("old-etag", "old-last-modified")
|
||||
|
||||
|
||||
# Ensure trailing newline
|
||||
|
||||
Reference in New Issue
Block a user