Implemented PersonInfo, closes #181
This commit is contained in:
150
tests/test_personinfo.py
Normal file
150
tests/test_personinfo.py
Normal file
@@ -0,0 +1,150 @@
|
||||
""" Test PersonInfo class """
|
||||
|
||||
import pytest
|
||||
|
||||
PHOTOS_DB_5 = "tests/Test-10.15.5.photoslibrary"
|
||||
PHOTOS_DB_4 = "tests/Test-10.14.6.photoslibrary"
|
||||
|
||||
UUID_DICT = {
|
||||
"katie_5": "0FFCE0A2-BE93-4661-A783-957BE54072E4",
|
||||
"katie_4": "D%zgor6TRmGng5V75UBy5A",
|
||||
}
|
||||
PHOTO_DICT = {
|
||||
"katie_5": [
|
||||
"1EB2B765-0765-43BA-A90C-0D0580E6172C",
|
||||
"F12384F6-CD17-4151-ACBA-AE0E3688539E",
|
||||
"D79B8D77-BFFC-460B-9312-034F2877D35B",
|
||||
],
|
||||
"katie_4": [
|
||||
"8SOE9s0XQVGsuq4ONohTng",
|
||||
"HrK3ZQdlQ7qpDA0FgOYXLA",
|
||||
"15uNd7%8RguTEgNPKHfTWw",
|
||||
],
|
||||
}
|
||||
|
||||
KEY_DICT = {
|
||||
"katie_5": "F12384F6-CD17-4151-ACBA-AE0E3688539E",
|
||||
"katie_4": "8SOE9s0XQVGsuq4ONohTng",
|
||||
}
|
||||
|
||||
STR_DICT = {
|
||||
"katie_5": "PersonInfo(name=Katie, display_name=Katie, uuid=0FFCE0A2-BE93-4661-A783-957BE54072E4, facecount=3)",
|
||||
"katie_4": "PersonInfo(name=Katie, display_name=Katie, uuid=D%zgor6TRmGng5V75UBy5A, facecount=3)",
|
||||
}
|
||||
|
||||
JSON_DICT = {
|
||||
"katie_5": {
|
||||
"uuid": "0FFCE0A2-BE93-4661-A783-957BE54072E4",
|
||||
"name": "Katie",
|
||||
"displayname": "Katie",
|
||||
"keyface": 2,
|
||||
"facecount": 3,
|
||||
"keyphoto": "F12384F6-CD17-4151-ACBA-AE0E3688539E",
|
||||
},
|
||||
"katie_4": {
|
||||
"uuid": "D%zgor6TRmGng5V75UBy5A",
|
||||
"name": "Katie",
|
||||
"displayname": "Katie",
|
||||
"keyface": 7,
|
||||
"facecount": 3,
|
||||
"keyphoto": "8SOE9s0XQVGsuq4ONohTng",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def photosdb5():
|
||||
import osxphotos
|
||||
|
||||
return osxphotos.PhotosDB(dbfile=PHOTOS_DB_5)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def photosdb4():
|
||||
import osxphotos
|
||||
|
||||
return osxphotos.PhotosDB(dbfile=PHOTOS_DB_4)
|
||||
|
||||
|
||||
def test_person_info_photosdb_v5(photosdb5):
|
||||
""" Test PersonInfo object """
|
||||
import json
|
||||
|
||||
test_key = "katie_5"
|
||||
katie = [p for p in photosdb5.person_info if p.uuid == UUID_DICT[test_key]][0]
|
||||
|
||||
assert katie.facecount == 3
|
||||
assert katie.name == "Katie"
|
||||
assert katie.display_name == "Katie"
|
||||
photos = katie.photos
|
||||
assert len(photos) == 3
|
||||
uuid = [p.uuid for p in photos]
|
||||
assert sorted(uuid) == sorted(PHOTO_DICT[test_key])
|
||||
assert str(katie) == STR_DICT[test_key]
|
||||
assert json.loads(katie.json()) == JSON_DICT[test_key]
|
||||
|
||||
|
||||
def test_person_info_photosinfo_v5(photosdb5):
|
||||
""" Test PersonInfo object """
|
||||
import json
|
||||
|
||||
test_key = "katie_5"
|
||||
photo = photosdb5.photos(uuid=[KEY_DICT[test_key]])[0]
|
||||
assert "Katie" in photo.persons
|
||||
|
||||
person_info = photo.person_info
|
||||
assert len(person_info) == 2
|
||||
|
||||
katie = [p for p in person_info if p.name == "Katie"][0]
|
||||
|
||||
assert katie.facecount == 3
|
||||
assert katie.name == "Katie"
|
||||
assert katie.display_name == "Katie"
|
||||
photos = katie.photos
|
||||
assert len(photos) == 3
|
||||
uuid = [p.uuid for p in photos]
|
||||
assert sorted(uuid) == sorted(PHOTO_DICT[test_key])
|
||||
assert katie.keyphoto.uuid == KEY_DICT[test_key]
|
||||
assert str(katie) == STR_DICT[test_key]
|
||||
assert json.loads(katie.json()) == JSON_DICT[test_key]
|
||||
|
||||
|
||||
def test_person_info_photosdb_v4(photosdb4):
|
||||
""" Test PersonInfo object """
|
||||
import json
|
||||
|
||||
test_key = "katie_4"
|
||||
katie = [p for p in photosdb4.person_info if p.uuid == UUID_DICT[test_key]][0]
|
||||
|
||||
assert katie.facecount == 3
|
||||
assert katie.name == "Katie"
|
||||
assert katie.display_name == "Katie"
|
||||
photos = katie.photos
|
||||
assert len(photos) == 3
|
||||
uuid = [p.uuid for p in photos]
|
||||
assert sorted(uuid) == sorted(PHOTO_DICT[test_key])
|
||||
assert katie.keyphoto.uuid == KEY_DICT[test_key]
|
||||
assert json.loads(katie.json()) == JSON_DICT[test_key]
|
||||
|
||||
|
||||
def test_person_info_photosinfo_v4(photosdb4):
|
||||
""" Test PersonInfo object """
|
||||
import json
|
||||
|
||||
test_key = "katie_4"
|
||||
photo = photosdb4.photos(uuid=[KEY_DICT[test_key]])[0]
|
||||
assert "Katie" in photo.persons
|
||||
|
||||
person_info = photo.person_info
|
||||
assert len(person_info) == 2
|
||||
|
||||
katie = [p for p in person_info if p.name == "Katie"][0]
|
||||
assert katie.facecount == 3
|
||||
assert katie.name == "Katie"
|
||||
assert katie.display_name == "Katie"
|
||||
photos = katie.photos
|
||||
assert len(photos) == 3
|
||||
uuid = [p.uuid for p in photos]
|
||||
assert sorted(uuid) == sorted(PHOTO_DICT[test_key])
|
||||
assert katie.keyphoto.uuid == KEY_DICT[test_key]
|
||||
assert json.loads(katie.json()) == JSON_DICT[test_key]
|
||||
Reference in New Issue
Block a user