fix: classify unsent upload connections and omit raw photo filenames [skip ci]

This commit is contained in:
渡口浪人
2026-10-18 08:19:03 +08:00
parent d7600f8329
commit 41c6897151
15 changed files with 53 additions and 20 deletions
+17
View File
@@ -165,6 +165,23 @@ def test_transport_failure_records_safe_category_without_replay(exception, categ
assert s.request.call_count == (3 if category == "connect_timeout" else 1)
def test_connection_establishment_failure_is_unsent_and_bounded(transport_clock):
from urllib3.exceptions import MaxRetryError, NewConnectionError
s = session()
s.request.side_effect = requests.ConnectionError(
MaxRetryError(None, "/private", NewConnectionError(None, "private"))
)
c = KokonnaClient("secret", True, s)
with pytest.raises(FlowError) as error:
c.display(1)
assert error.value.code == "CLOUD_UNAVAILABLE"
assert error.value.details["write_outcome"] == "not_sent"
assert error.value.details["transport_error"] == "connect_error"
assert s.request.call_count == 3
assert "private" not in str(error.value.details)
@pytest.mark.parametrize("write", [False, True])
def test_connect_timeout_retries_then_succeeds(write, transport_clock):
s = session({"success": True})
+4 -2
View File
@@ -7,7 +7,9 @@ from pigway_frame_flow.renderers.photo_caption import render_captioned_photo
from pigway_frame_flow.renderers.photo_layout import PhotoLayout, WatermarkLayout
def test_watermark_includes_filename_and_recognized_people(service, monkeypatch):
def test_watermark_omits_raw_filename_and_includes_recognized_people(
service, monkeypatch
):
drawn = []
original = ImageDraw.ImageDraw.text
@@ -29,7 +31,7 @@ def test_watermark_includes_filename_and_recognized_people(service, monkeypatch)
service.renderer.font,
size=(1600, 1200),
)
assert drawn == ["2026-10-17 · Alice & Bob · Family · one.jpg"]
assert drawn == ["2026-10-17 · Alice & Bob · Family"]
@pytest.mark.parametrize("size", [(1600, 1200), (1200, 1600)])
+2 -2
View File
@@ -106,7 +106,7 @@ def test_caption_people_use_actual_membership_and_cache(settings, monkeypatch):
@pytest.mark.parametrize("labels_available", [True, False])
def test_api_caption_keeps_filename_and_folder_with_optional_people(
def test_api_caption_keeps_folder_and_optional_people_without_filename(
service, settings, monkeypatch, labels_available
):
session(settings)
@@ -133,7 +133,7 @@ def test_api_caption_keeps_filename_and_folder_with_optional_people(
_, _, caption = provider.read("captions", "1")
assert caption["date"] == "2026-10-17"
assert caption["title"] == "Family"
assert caption["filename"] == "one.jpg"
assert "filename" not in caption
assert caption.get("people", "") == ("Alice & Bob" if labels_available else "")