Cleaned up as_dict/asdict, issue #144, #188

This commit is contained in:
Rhet Turnbull
2020-10-27 06:54:42 -07:00
parent 091f1d9bb4
commit 603dabb8f4
12 changed files with 94 additions and 34 deletions

View File

@@ -133,6 +133,7 @@ RawInfo = namedtuple(
"uti_raw",
],
)
RAW_DICT = {
"D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068": RawInfo(
"raw image, no jpeg pair",
@@ -181,6 +182,7 @@ RAW_DICT = {
def photosdb():
return osxphotos.PhotosDB(dbfile=PHOTOS_DB)
def test_init1():
# test named argument
@@ -922,7 +924,6 @@ def test_from_to_date(photosdb):
os.environ["TZ"] = "US/Pacific"
time.tzset()
photos = photosdb.photos(from_date=datetime.datetime(2018, 10, 28))
assert len(photos) == 7
@@ -941,7 +942,6 @@ def test_from_to_date_tz(photosdb):
os.environ["TZ"] = "US/Pacific"
time.tzset()
photos = photosdb.photos(
from_date=datetime.datetime(2018, 9, 28, 13, 7, 0),
to_date=datetime.datetime(2018, 9, 28, 13, 9, 0),
@@ -978,8 +978,7 @@ def test_date_invalid():
# doesn't run correctly with the module-level fixture
from datetime import datetime, timedelta, timezone
import osxphotos
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
photos = photosdb.photos(uuid=[UUID_DICT["date_invalid"]])
assert len(photos) == 1

View File

@@ -854,7 +854,7 @@ def test_export_exiftool():
files = glob.glob("*")
assert sorted(files) == sorted([CLI_EXIFTOOL[uuid]["File:FileName"]])
exif = ExifTool(CLI_EXIFTOOL[uuid]["File:FileName"]).as_dict()
exif = ExifTool(CLI_EXIFTOOL[uuid]["File:FileName"]).asdict()
for key in CLI_EXIFTOOL[uuid]:
assert exif[key] == CLI_EXIFTOOL[uuid][key]

View File

@@ -53,6 +53,23 @@ LIKE_UUID_DICT = {
],
}
COMMENT_UUID_ASDICT = {
"4E4944A0-3E5C-4028-9600-A8709F2FA1DB": {
"datetime": datetime.datetime(2020, 9, 19, 22, 54, 12, 947978),
"user": None,
"ismine": True,
"text": "Nice trophy",
}
}
LIKE_UUID_ASDICT = {
"65BADBD7-A50C-4956-96BA-1BB61155DA17": {
"datetime": datetime.datetime(2020, 9, 18, 10, 28, 52, 570000),
"user": None,
"ismine": False,
}
}
@pytest.fixture(scope="module")
def photosdb():
@@ -69,3 +86,15 @@ def test_likes(photosdb):
for uuid in LIKE_UUID_DICT:
photo = photosdb.get_photo(uuid)
assert photo.likes == LIKE_UUID_DICT[uuid]
def test_comments_as_dict(photosdb):
for uuid in COMMENT_UUID_ASDICT:
photo = photosdb.get_photo(uuid)
assert photo.comments[0].asdict() == COMMENT_UUID_ASDICT[uuid]
def test_likes_as_dict(photosdb):
for uuid in LIKE_UUID_ASDICT:
photo = photosdb.get_photo(uuid)
assert photo.likes[0].asdict() == LIKE_UUID_ASDICT[uuid]

View File

@@ -198,7 +198,7 @@ def test_as_dict():
import osxphotos.exiftool
exif1 = osxphotos.exiftool.ExifTool(TEST_FILE_ONE_KEYWORD)
exifdata = exif1.as_dict()
exifdata = exif1.asdict()
assert exifdata["XMP:TagsList"] == "wedding"
@@ -227,7 +227,7 @@ def test_photoinfo_exiftool():
for uuid in EXIF_UUID:
photo = photosdb.photos(uuid=[uuid])[0]
exiftool = photo.exiftool
exif_dict = exiftool.as_dict()
exif_dict = exiftool.asdict()
for key, val in EXIF_UUID[uuid].items():
assert exif_dict[key] == val

View File

@@ -130,15 +130,15 @@ def test_place_no_place_info():
assert photo.place is None
def test_place_place_info_as_dict():
# test PlaceInfo.as_dict()
def test_place_place_info_asdict():
# test PlaceInfo.asdict()
import osxphotos
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
photo = photosdb.photos(uuid=[UUID_DICT["place_maui"]])[0]
assert isinstance(photo.place, osxphotos.placeinfo.PlaceInfo)
assert photo.place.as_dict() == MAUI_DICT
assert photo.place.asdict() == MAUI_DICT
# def test_place_str():

View File

@@ -89,11 +89,11 @@ def test_place_str():
def test_place_as_dict():
# test PlaceInfo.as_dict()
# test PlaceInfo.asdict()
import osxphotos
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
photo = photosdb.photos(uuid=[UUID_DICT["place_uk"]])[0]
assert photo.place is not None
assert isinstance(photo.place, osxphotos.placeinfo.PlaceInfo)
assert photo.place.as_dict() == UK_DICT
assert photo.place.asdict() == UK_DICT