Fix for missing original_filename, issue #267
This commit is contained in:
@@ -91,9 +91,10 @@ class PhotoInfo:
|
|||||||
and self.raw_original
|
and self.raw_original
|
||||||
):
|
):
|
||||||
# return the JPEG version as that's what Photos 5+ does
|
# return the JPEG version as that's what Photos 5+ does
|
||||||
return self._info["raw_pair_info"]["originalFilename"]
|
original_name = self._info["raw_pair_info"]["originalFilename"]
|
||||||
else:
|
else:
|
||||||
return self._info["originalFilename"]
|
original_name = self._info["originalFilename"]
|
||||||
|
return original_name or self.filename
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def date(self):
|
def date(self):
|
||||||
|
|||||||
@@ -177,6 +177,12 @@ RAW_DICT = {
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ORIGINAL_FILENAME_DICT = {
|
||||||
|
"uuid": "D79B8D77-BFFC-460B-9312-034F2877D35B",
|
||||||
|
"filename": "D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg",
|
||||||
|
"original_filename": "Pumkins2.jpg",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def photosdb():
|
def photosdb():
|
||||||
@@ -871,7 +877,10 @@ def test_export_no_original_filename(photosdb):
|
|||||||
tempdir = tempfile.TemporaryDirectory(prefix="osxphotos_")
|
tempdir = tempfile.TemporaryDirectory(prefix="osxphotos_")
|
||||||
dest = tempdir.name
|
dest = tempdir.name
|
||||||
photos = photosdb.photos(uuid=[UUID_DICT["export"]])
|
photos = photosdb.photos(uuid=[UUID_DICT["export"]])
|
||||||
photos[0]._info["original_filename"] = None
|
|
||||||
|
# monkey patch original_filename for testing
|
||||||
|
original_filename = photos[0]._info["originalFilename"]
|
||||||
|
photos[0]._info["originalFilename"] = None
|
||||||
filename = f"{photos[0].uuid}.jpeg"
|
filename = f"{photos[0].uuid}.jpeg"
|
||||||
expected_dest = os.path.join(dest, filename)
|
expected_dest = os.path.join(dest, filename)
|
||||||
got_dest = photos[0].export(dest)[0]
|
got_dest = photos[0].export(dest)[0]
|
||||||
@@ -879,6 +888,8 @@ def test_export_no_original_filename(photosdb):
|
|||||||
assert got_dest == expected_dest
|
assert got_dest == expected_dest
|
||||||
assert os.path.isfile(got_dest)
|
assert os.path.isfile(got_dest)
|
||||||
|
|
||||||
|
photos[0]._info["originalFilename"] = original_filename
|
||||||
|
|
||||||
|
|
||||||
def test_eq():
|
def test_eq():
|
||||||
""" Test equality of two PhotoInfo objects """
|
""" Test equality of two PhotoInfo objects """
|
||||||
@@ -1086,3 +1097,18 @@ def test_verbose(capsys):
|
|||||||
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB, verbose=print)
|
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB, verbose=print)
|
||||||
captured = capsys.readouterr()
|
captured = capsys.readouterr()
|
||||||
assert "Processing database" in captured.out
|
assert "Processing database" in captured.out
|
||||||
|
|
||||||
|
|
||||||
|
def test_original_filename(photosdb):
|
||||||
|
""" test original filename """
|
||||||
|
uuid = ORIGINAL_FILENAME_DICT["uuid"]
|
||||||
|
photo = photosdb.get_photo(uuid)
|
||||||
|
assert photo.original_filename == ORIGINAL_FILENAME_DICT["original_filename"]
|
||||||
|
assert photo.filename == ORIGINAL_FILENAME_DICT["filename"]
|
||||||
|
|
||||||
|
# monkey patch
|
||||||
|
original_filename = photo._info["originalFilename"]
|
||||||
|
photo._info["originalFilename"] = None
|
||||||
|
assert photo.original_filename == ORIGINAL_FILENAME_DICT["filename"]
|
||||||
|
photo._info["originalFilename"] = original_filename
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user