US07-04: Prove Concurrency and Crash Recovery (#86)
This commit was merged in pull request #86.
This commit is contained in:
@@ -25,6 +25,7 @@ import uuid
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from photo_pipeline.faults import EXIF_WRITTEN, maybe_fault
|
||||
from photo_pipeline.integrations import exiftool
|
||||
from photo_pipeline.models import ExifProjection
|
||||
from photo_pipeline.services import hashing
|
||||
@@ -120,6 +121,10 @@ def run(
|
||||
if not exiftool.apply_keywords(path, add=add, remove=remove):
|
||||
return CheckpointResult(FAILED, reason="write_failed")
|
||||
|
||||
# The file on disk has changed; nothing about it is recorded yet. A crash here
|
||||
# is the worst case for metadata, so it is a fault control point (US07-04).
|
||||
maybe_fault(EXIF_WRITTEN)
|
||||
|
||||
after = exiftool.read_all(path)
|
||||
if after is None:
|
||||
return CheckpointResult(FAILED, reason="readback_unreadable")
|
||||
|
||||
Reference in New Issue
Block a user