diff --git a/README.md b/README.md
index ac6f5e3c..236c218a 100644
--- a/README.md
+++ b/README.md
@@ -427,23 +427,24 @@ Substitution Description
{descr} Description of the photo
{created.date} Photo's creation date in ISO format, e.g.
'2020-03-22'
-{created.year} 4-digit year of file creation time
-{created.yy} 2-digit year of file creation time
-{created.mm} 2-digit month of the file creation time
+{created.year} 4-digit year of photo creation time
+{created.yy} 2-digit year of photo creation time
+{created.mm} 2-digit month of the photo creation time
(zero padded)
-{created.month} Month name in user's locale of the file
+{created.month} Month name in user's locale of the photo
creation time
{created.mon} Month abbreviation in the user's locale of
- the file creation time
+ the photo creation time
{created.dd} 2-digit day of the month (zero padded) of
- file creation time
-{created.dow} Day of week in user's locale of the file
+ photo creation time
+{created.dow} Day of week in user's locale of the photo
creation time
-{created.doy} 3-digit day of year (e.g Julian day) of file
- creation time, starting from 1 (zero padded)
-{created.hour} 2-digit hour of the file creation time
-{created.min} 2-digit minute of the file creation time
-{created.sec} 2-digit second of the file creation time
+{created.doy} 3-digit day of year (e.g Julian day) of
+ photo creation time, starting from 1 (zero
+ padded)
+{created.hour} 2-digit hour of the photo creation time
+{created.min} 2-digit minute of the photo creation time
+{created.sec} 2-digit second of the photo creation time
{created.strftime} Apply strftime template to file creation
date/time. Should be used in form
{created.strftime,TEMPLATE} where TEMPLATE
@@ -455,22 +456,26 @@ Substitution Description
templates.
{modified.date} Photo's modification date in ISO format,
e.g. '2020-03-22'
-{modified.year} 4-digit year of file modification time
-{modified.yy} 2-digit year of file modification time
-{modified.mm} 2-digit month of the file modification time
+{modified.year} 4-digit year of photo modification time
+{modified.yy} 2-digit year of photo modification time
+{modified.mm} 2-digit month of the photo modification time
(zero padded)
-{modified.month} Month name in user's locale of the file
+{modified.month} Month name in user's locale of the photo
modification time
{modified.mon} Month abbreviation in the user's locale of
- the file modification time
+ the photo modification time
{modified.dd} 2-digit day of the month (zero padded) of
- the file modification time
-{modified.doy} 3-digit day of year (e.g Julian day) of file
- modification time, starting from 1 (zero
- padded)
-{modified.hour} 2-digit hour of the file modification time
-{modified.min} 2-digit minute of the file modification time
-{modified.sec} 2-digit second of the file modification time
+ the photo modification time
+{modified.dow} Day of week in user's locale of the photo
+ modification time
+{modified.doy} 3-digit day of year (e.g Julian day) of
+ photo modification time, starting from 1
+ (zero padded)
+{modified.hour} 2-digit hour of the photo modification time
+{modified.min} 2-digit minute of the photo modification
+ time
+{modified.sec} 2-digit second of the photo modification
+ time
{today.date} Current date in iso format, e.g.
'2020-03-22'
{today.year} 4-digit year of current date
diff --git a/osxphotos/__main__.py b/osxphotos/__main__.py
index 63da0190..f141852b 100644
--- a/osxphotos/__main__.py
+++ b/osxphotos/__main__.py
@@ -1409,7 +1409,7 @@ def export(
edited_suffix,
place,
no_place,
- has_comment,
+ has_comment,
no_comment,
has_likes,
no_likes,
@@ -2155,7 +2155,6 @@ def _query(
photos = [p for p in photos if p.likes]
elif no_likes:
photos = [p for p in photos if not p.likes]
-
return photos
diff --git a/osxphotos/_version.py b/osxphotos/_version.py
index 1f75773a..cc5807ff 100644
--- a/osxphotos/_version.py
+++ b/osxphotos/_version.py
@@ -1,4 +1,4 @@
""" version info """
-__version__ = "0.36.1"
+__version__ = "0.36.2"
diff --git a/osxphotos/photosdb/photosdb.py b/osxphotos/photosdb/photosdb.py
index d5fe523e..227bc599 100644
--- a/osxphotos/photosdb/photosdb.py
+++ b/osxphotos/photosdb/photosdb.py
@@ -1809,7 +1809,8 @@ class PhotosDB:
ZADDITIONALASSETATTRIBUTES.ZORIGINALWIDTH,
ZADDITIONALASSETATTRIBUTES.ZORIGINALORIENTATION,
ZADDITIONALASSETATTRIBUTES.ZORIGINALFILESIZE,
- {depth_state}
+ {depth_state},
+ {asset_table}.ZADJUSTMENTTIMESTAMP
FROM {asset_table}
JOIN ZADDITIONALASSETATTRIBUTES ON ZADDITIONALASSETATTRIBUTES.ZASSET = {asset_table}.Z_PK
ORDER BY {asset_table}.ZUUID """
@@ -1853,6 +1854,7 @@ class PhotosDB:
# 34 ZADDITIONALASSETATTRIBUTES.ZORIGINALORIENTATION,
# 35 ZADDITIONALASSETATTRIBUTES.ZORIGINALFILESIZE
# 36 ZGENERICASSET.ZDEPTHSTATES / ZASSET.ZDEPTHTYPE
+ # 37 ZGENERICASSET.ZADJUSTMENTTIMESTAMP -- when was photo edited?
for row in c:
uuid = row[0]
@@ -1866,9 +1868,9 @@ class PhotosDB:
# There are sometimes negative values for lastmodifieddate in the database
# I don't know what these mean but they will raise exception in datetime if
# not accounted for
- info["lastmodifieddate_timestamp"] = row[4]
+ info["lastmodifieddate_timestamp"] = row[37]
try:
- info["lastmodifieddate"] = datetime.fromtimestamp(row[4] + TIME_DELTA)
+ info["lastmodifieddate"] = datetime.fromtimestamp(row[37] + TIME_DELTA)
except ValueError:
info["lastmodifieddate"] = None
except TypeError:
@@ -2282,7 +2284,7 @@ class PhotosDB:
# process shared comments/likes
verbose("Processing comments and likes for shared photos.")
self._process_comments()
-
+
# done processing, dump debug data if requested
verbose("Done processing details from Photos library.")
if _debug():
diff --git a/osxphotos/phototemplate.py b/osxphotos/phototemplate.py
index c0592928..f1db5112 100644
--- a/osxphotos/phototemplate.py
+++ b/osxphotos/phototemplate.py
@@ -30,33 +30,34 @@ TEMPLATE_SUBSTITUTIONS = {
"{title}": "Title of the photo",
"{descr}": "Description of the photo",
"{created.date}": "Photo's creation date in ISO format, e.g. '2020-03-22'",
- "{created.year}": "4-digit year of file creation time",
- "{created.yy}": "2-digit year of file creation time",
- "{created.mm}": "2-digit month of the file creation time (zero padded)",
- "{created.month}": "Month name in user's locale of the file creation time",
- "{created.mon}": "Month abbreviation in the user's locale of the file creation time",
- "{created.dd}": "2-digit day of the month (zero padded) of file creation time",
- "{created.dow}": "Day of week in user's locale of the file creation time",
- "{created.doy}": "3-digit day of year (e.g Julian day) of file creation time, starting from 1 (zero padded)",
- "{created.hour}": "2-digit hour of the file creation time",
- "{created.min}": "2-digit minute of the file creation time",
- "{created.sec}": "2-digit second of the file creation time",
+ "{created.year}": "4-digit year of photo creation time",
+ "{created.yy}": "2-digit year of photo creation time",
+ "{created.mm}": "2-digit month of the photo creation time (zero padded)",
+ "{created.month}": "Month name in user's locale of the photo creation time",
+ "{created.mon}": "Month abbreviation in the user's locale of the photo creation time",
+ "{created.dd}": "2-digit day of the month (zero padded) of photo creation time",
+ "{created.dow}": "Day of week in user's locale of the photo creation time",
+ "{created.doy}": "3-digit day of year (e.g Julian day) of photo creation time, starting from 1 (zero padded)",
+ "{created.hour}": "2-digit hour of the photo creation time",
+ "{created.min}": "2-digit minute of the photo creation time",
+ "{created.sec}": "2-digit second of the photo creation time",
"{created.strftime}": "Apply strftime template to file creation date/time. Should be used in form "
+ "{created.strftime,TEMPLATE} where TEMPLATE is a valid strftime template, e.g. "
+ "{created.strftime,%Y-%U} would result in year-week number of year: '2020-23'. "
+ "If used with no template will return null value. "
+ "See https://strftime.org/ for help on strftime templates.",
"{modified.date}": "Photo's modification date in ISO format, e.g. '2020-03-22'",
- "{modified.year}": "4-digit year of file modification time",
- "{modified.yy}": "2-digit year of file modification time",
- "{modified.mm}": "2-digit month of the file modification time (zero padded)",
- "{modified.month}": "Month name in user's locale of the file modification time",
- "{modified.mon}": "Month abbreviation in the user's locale of the file modification time",
- "{modified.dd}": "2-digit day of the month (zero padded) of the file modification time",
- "{modified.doy}": "3-digit day of year (e.g Julian day) of file modification time, starting from 1 (zero padded)",
- "{modified.hour}": "2-digit hour of the file modification time",
- "{modified.min}": "2-digit minute of the file modification time",
- "{modified.sec}": "2-digit second of the file modification time",
+ "{modified.year}": "4-digit year of photo modification time",
+ "{modified.yy}": "2-digit year of photo modification time",
+ "{modified.mm}": "2-digit month of the photo modification time (zero padded)",
+ "{modified.month}": "Month name in user's locale of the photo modification time",
+ "{modified.mon}": "Month abbreviation in the user's locale of the photo modification time",
+ "{modified.dd}": "2-digit day of the month (zero padded) of the photo modification time",
+ "{modified.dow}": "Day of week in user's locale of the photo modification time",
+ "{modified.doy}": "3-digit day of year (e.g Julian day) of photo modification time, starting from 1 (zero padded)",
+ "{modified.hour}": "2-digit hour of the photo modification time",
+ "{modified.min}": "2-digit minute of the photo modification time",
+ "{modified.sec}": "2-digit second of the photo modification time",
# "{modified.strftime}": "Apply strftime template to file modification date/time. Should be used in form "
# + "{modified.strftime,TEMPLATE} where TEMPLATE is a valid strftime template, e.g. "
# + "{modified.strftime,%Y-%U} would result in year-week number of year: '2020-23'. "
@@ -102,7 +103,7 @@ TEMPLATE_SUBSTITUTIONS_MULTI_VALUED = {
"{person}": "Person(s) / face(s) in a photo",
"{label}": "Image categorization label associated with a photo (Photos 5 only)",
"{label_normalized}": "All lower case version of 'label' (Photos 5 only)",
- "{comment}": "Comment(s) on shared Photos; format is 'Person name: comment text' (Photos 5 only)"
+ "{comment}": "Comment(s) on shared Photos; format is 'Person name: comment text' (Photos 5 only)",
}
# Just the multi-valued substitution names without the braces
@@ -445,6 +446,12 @@ class PhotoTemplate:
if self.photo.date_modified
else None
)
+ elif field == "modified.dow":
+ value = (
+ DateTimeFormatter(self.photo.date_modified).dow
+ if self.photo.date_modified
+ else None
+ )
elif field == "modified.doy":
value = (
DateTimeFormatter(self.photo.date_modified).doy
@@ -639,7 +646,9 @@ class PhotoTemplate:
else:
values.append(album.title)
elif field == "comment":
- values = [f"{comment.user}: {comment.text}" for comment in self.photo.comments]
+ values = [
+ f"{comment.user}: {comment.text}" for comment in self.photo.comments
+ ]
else:
raise ValueError(f"Unhandled template value: {field}")
diff --git a/tests/Test-10.15.7.photoslibrary/database/DataModelVersion.plist b/tests/Test-10.15.7.photoslibrary/database/DataModelVersion.plist
new file mode 100644
index 00000000..be9740fe
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/database/DataModelVersion.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ LibrarySchemaVersion
+ 5001
+ MetaSchemaVersion
+ 3
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite
new file mode 100644
index 00000000..c79bbeca
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-shm b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-shm
new file mode 100644
index 00000000..8de93b6d
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-wal b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-wal
new file mode 100644
index 00000000..5546247b
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite.lock b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite.lock
new file mode 100644
index 00000000..541e5308
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/database/Photos.sqlite.lock
@@ -0,0 +1,16 @@
+
+
+
+
+ hostname
+ Rhets-MacBook-Pro.local
+ hostuuid
+ 9575E48B-8D5F-5654-ABAC-4431B1167324
+ pid
+ 1797
+ processname
+ photolibraryd
+ uid
+ 501
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/database/metaSchema.db b/tests/Test-10.15.7.photoslibrary/database/metaSchema.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/metaSchema.db differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/photos.db b/tests/Test-10.15.7.photoslibrary/database/photos.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/photos.db differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/protection b/tests/Test-10.15.7.photoslibrary/database/protection
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/graphDataProgress.plist b/tests/Test-10.15.7.photoslibrary/database/search/graphDataProgress.plist
new file mode 100644
index 00000000..c4e5e427
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/search/graphDataProgress.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite b/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite
new file mode 100644
index 00000000..fda31610
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite-shm b/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite-wal b/tests/Test-10.15.7.photoslibrary/database/search/psi.sqlite-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/searchMetadata.plist b/tests/Test-10.15.7.photoslibrary/database/search/searchMetadata.plist
new file mode 100644
index 00000000..3eec4180
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/database/search/searchMetadata.plist
@@ -0,0 +1,188 @@
+
+
+
+
+ BlacklistedMeaningsByMeaning
+
+ MePersonUUID
+ 39488755-78C0-40B2-B378-EDA280E1823C
+ SceneWhitelist
+
+ Graduation
+ Aquarium
+ Food
+ Ice Skating
+ Mountain
+ Cliff
+ Basketball
+ Tennis
+ Jewelry
+ Cheese
+ Softball
+ Football
+ Circus
+ Jet Ski
+ Playground
+ Carousel
+ Paint Ball
+ Windsurfing
+ Sailboat
+ Sunbathing
+ Dam
+ Fireplace
+ Flower
+ Scuba
+ Hiking
+ Cetacean
+ Pier
+ Bowling
+ Snowboarding
+ Zoo
+ Snowmobile
+ Theater
+ Boat
+ Casino
+ Car
+ Diving
+ Cycling
+ Musical Instrument
+ Board Game
+ Castle
+ Sunset Sunrise
+ Martial Arts
+ Motocross
+ Submarine
+ Cat
+ Snow
+ Kiteboarding
+ Squash
+ Geyser
+ Music
+ Archery
+ Desert
+ Blackjack
+ Fireworks
+ Sportscar
+ Feline
+ Soccer
+ Museum
+ Baby
+ Fencing
+ Railroad
+ Nascar
+ Sky Surfing
+ Bird
+ Games
+ Baseball
+ Dressage
+ Snorkeling
+ Pyramid
+ Kite
+ Rowboat
+ Golf
+ Watersports
+ Lightning
+ Canyon
+ Auditorium
+ Night Sky
+ Karaoke
+ Skiing
+ Parade
+ Forest
+ Hot Air Balloon
+ Dragon Parade
+ Easter Egg
+ Monument
+ Jungle
+ Thanksgiving
+ Jockey Horse
+ Stadium
+ Airplane
+ Ballet
+ Yoga
+ Coral Reef
+ Skating
+ Wrestling
+ Bicycle
+ Tattoo
+ Amusement Park
+ Canoe
+ Cheerleading
+ Ping Pong
+ Fishing
+ Magic
+ Reptile
+ Winter Sport
+ Waterfall
+ Train
+ Bonsai
+ Surfing
+ Dog
+ Cake
+ Sledding
+ Sandcastle
+ Glacier
+ Lighthouse
+ Equestrian
+ Rafting
+ Shore
+ Hockey
+ Santa Claus
+ Formula One Car
+ Sport
+ Vehicle
+ Boxing
+ Rollerskating
+ Underwater
+ Orchestra
+ Carnival
+ Rocket
+ Skateboarding
+ Helicopter
+ Performance
+ Oktoberfest
+ Water Polo
+ Skate Park
+ Animal
+ Nightclub
+ String Instrument
+ Dinosaur
+ Gymnastics
+ Cricket
+ Volcano
+ Lake
+ Aurora
+ Dancing
+ Concert
+ Rock Climbing
+ Hang Glider
+ Rodeo
+ Fish
+ Art
+ Motorcycle
+ Volleyball
+ Wake Boarding
+ Badminton
+ Motor Sport
+ Sumo
+ Parasailing
+ Skydiving
+ Kickboxing
+ Pinata
+ Foosball
+ Go Kart
+ Poker
+ Kayak
+ Swimming
+ Atv
+ Beach
+ Dartboard
+ Athletics
+ Camping
+ Tornado
+ Billiards
+ Rugby
+ Airshow
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/searchProgress.plist b/tests/Test-10.15.7.photoslibrary/database/search/searchProgress.plist
new file mode 100644
index 00000000..ad779080
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/database/search/searchProgress.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ insertAlbum
+
+ insertAsset
+
+ insertHighlight
+
+ insertMemory
+
+ insertMoment
+
+ removeAlbum
+
+ removeAsset
+
+ removeHighlight
+
+ removeMemory
+
+ removeMoment
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/searchSystemInfo.plist b/tests/Test-10.15.7.photoslibrary/database/search/searchSystemInfo.plist
new file mode 100644
index 00000000..f6d69ef7
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/database/search/searchSystemInfo.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ embeddingVersion
+ 1
+ localeIdentifier
+ en_US
+ sceneTaxonomySHA
+ 87914a047c69fbe8013fad2c70fa70c6c03b08b56190fe4054c880e6b9f57cc3
+ searchIndexVersion
+ 10
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/synonymsProcess.plist b/tests/Test-10.15.7.photoslibrary/database/search/synonymsProcess.plist
new file mode 100644
index 00000000..58e48cc1
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/search/synonymsProcess.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/database/search/zeroKeywords.data b/tests/Test-10.15.7.photoslibrary/database/search/zeroKeywords.data
new file mode 100644
index 00000000..5d03620c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/database/search/zeroKeywords.data differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/1/1EB2B765-0765-43BA-A90C-0D0580E6172C.jpeg b/tests/Test-10.15.7.photoslibrary/originals/1/1EB2B765-0765-43BA-A90C-0D0580E6172C.jpeg
new file mode 100644
index 00000000..136dfe8d
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/1/1EB2B765-0765-43BA-A90C-0D0580E6172C.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907.jpeg b/tests/Test-10.15.7.photoslibrary/originals/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907.jpeg
new file mode 100644
index 00000000..ca03f665
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96.jpeg b/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96.jpeg
new file mode 100755
index 00000000..143e9532
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4.cr2 b/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4.cr2
new file mode 100755
index 00000000..f2adc62f
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4.cr2 differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.jpeg b/tests/Test-10.15.7.photoslibrary/originals/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.jpeg
new file mode 100644
index 00000000..31eb2ab3
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/6/6FD38366-3BF2-407D-81FE-7153EB6125B6.jpeg b/tests/Test-10.15.7.photoslibrary/originals/6/6FD38366-3BF2-407D-81FE-7153EB6125B6.jpeg
new file mode 100644
index 00000000..88caa537
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/6/6FD38366-3BF2-407D-81FE-7153EB6125B6.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/7/71E3E212-00EB-430D-8A63-5E294B268554.jpeg b/tests/Test-10.15.7.photoslibrary/originals/7/71E3E212-00EB-430D-8A63-5E294B268554.jpeg
new file mode 100644
index 00000000..829a2345
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/7/71E3E212-00EB-430D-8A63-5E294B268554.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.heic b/tests/Test-10.15.7.photoslibrary/originals/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.heic
new file mode 100644
index 00000000..8f103814
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.heic differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/8/8846E3E6-8AC8-4857-8448-E3D025784410.tiff b/tests/Test-10.15.7.photoslibrary/originals/8/8846E3E6-8AC8-4857-8448-E3D025784410.tiff
new file mode 100644
index 00000000..69654411
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/8/8846E3E6-8AC8-4857-8448-E3D025784410.tiff differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91.jpeg b/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91.jpeg
new file mode 100755
index 00000000..c1872812
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4.cr2 b/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4.cr2
new file mode 100755
index 00000000..6cd12fb4
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4.cr2 differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068.dng b/tests/Test-10.15.7.photoslibrary/originals/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068.dng
new file mode 100755
index 00000000..1f96242c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068.dng differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/D/D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg b/tests/Test-10.15.7.photoslibrary/originals/D/D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg
new file mode 100644
index 00000000..f23a024a
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/D/D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/D/DC99FBDD-7A52-4100-A5BB-344131646C30.jpeg b/tests/Test-10.15.7.photoslibrary/originals/D/DC99FBDD-7A52-4100-A5BB-344131646C30.jpeg
new file mode 100644
index 00000000..e5a6b0bd
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/D/DC99FBDD-7A52-4100-A5BB-344131646C30.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.jpeg b/tests/Test-10.15.7.photoslibrary/originals/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.jpeg
new file mode 100644
index 00000000..ad8137e3
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/originals/F/F12384F6-CD17-4151-ACBA-AE0E3688539E.jpeg b/tests/Test-10.15.7.photoslibrary/originals/F/F12384F6-CD17-4151-ACBA-AE0E3688539E.jpeg
new file mode 100644
index 00000000..b1615930
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/originals/F/F12384F6-CD17-4151-ACBA-AE0E3688539E.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/.metadata_never_index b/tests/Test-10.15.7.photoslibrary/private/.metadata_never_index
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos.Migration/appPrivateData.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos.Migration/appPrivateData.plist
new file mode 100644
index 00000000..651ed0ad
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos.Migration/appPrivateData.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ MigrationService
+
+ State
+ 4
+
+ MigrationService.LastCompletedTask
+ 12
+ MigrationService.ValidationCounts
+
+ MigrationDetectedFaceprint
+ 6
+ MigrationManagedAsset
+ 0
+ MigrationSceneClassification
+ 44
+ MigrationUnmanagedAdjustment
+ 0
+ RDVersion.cloudLocalState.CPLIsNotPushed
+ 7
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos/appPrivateData.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos/appPrivateData.plist
new file mode 100644
index 00000000..40d5b4f7
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.Photos/appPrivateData.plist
@@ -0,0 +1,53 @@
+
+
+
+
+ CollapsedSidebarSectionIdentifiers
+
+ ExpandedSidebarItemIdentifiers
+
+ 92D68107-B6C7-453B-96D2-97B0F26D5B8B/L0/020
+ 88A5F8B8-5B9A-43C7-BB85-3952B81580EB/L0/020
+ 29EF7A97-7E76-4D5F-A5E0-CC0A93E8524C/L0/020
+ 2C2AF115-BD1D-4434-A747-D1C8BD8E2045/L0/020
+ CB051A4C-2CB7-4B90-B59B-08CC4D0C2823/L0/020
+
+ Photos
+
+ CollapsedSidebarSectionIdentifiers
+
+ ExpandedSidebarItemIdentifiers
+
+ TopLevelAlbums
+ TopLevelSlideshows
+
+ IPXWorkspaceControllerZoomLevelsKey
+
+ kZoomLevelIdentifierAlbums
+ 7
+ kZoomLevelIdentifierVersions
+ 7
+
+ lastAddToDestination
+
+ key
+ 1
+ lastKnownDisplayName
+ September 28, 2018
+ type
+ album
+ uuid
+ DFFKmHt3Tk+AGzZLe2Xq+g
+
+ lastKnownItemCounts
+
+ other
+ 0
+ photos
+ 7
+ videos
+ 0
+
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db b/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db
new file mode 100644
index 00000000..80f93dd8
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm
new file mode 100644
index 00000000..c4bba1ba
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite
new file mode 100644
index 00000000..1ae4db41
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm
new file mode 100644
index 00000000..470583de
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal
new file mode 100644
index 00000000..396aafcb
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite
new file mode 100644
index 00000000..6972b2d9
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm
new file mode 100644
index 00000000..67c45890
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal
new file mode 100644
index 00000000..714e6fa5
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite
new file mode 100644
index 00000000..76d99e2a
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm
new file mode 100644
index 00000000..1a2ded58
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-wal
new file mode 100644
index 00000000..85f527ee
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite
new file mode 100644
index 00000000..fdc12c59
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm
new file mode 100644
index 00000000..4c902e39
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal
new file mode 100644
index 00000000..b8781a01
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite
new file mode 100644
index 00000000..f7ecf813
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm
new file mode 100644
index 00000000..a061f761
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal
new file mode 100644
index 00000000..eb3c46ed
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite
new file mode 100644
index 00000000..7d4f30bc
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm
new file mode 100644
index 00000000..445a19fb
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal
new file mode 100644
index 00000000..134e803f
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite
new file mode 100644
index 00000000..76d2bc2f
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm
new file mode 100644
index 00000000..ee2bbd34
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal
new file mode 100644
index 00000000..5691e3be
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm
new file mode 100644
index 00000000..a097d319
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal
new file mode 100644
index 00000000..af04ea60
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist
new file mode 100644
index 00000000..9dfd418a
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist
new file mode 100644
index 00000000..0de953ba
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist
new file mode 100644
index 00000000..c4cf5f46
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ BackgroundHighlightCollection
+ 2020-10-17T23:45:25Z
+ BackgroundHighlightEnrichment
+ 2020-10-17T23:45:25Z
+ BackgroundJobAssetRevGeocode
+ 2020-10-17T23:45:25Z
+ BackgroundJobSearch
+ 2020-10-17T23:45:25Z
+ BackgroundPeopleSuggestion
+ 2020-10-17T23:45:25Z
+ BackgroundUserBehaviorProcessor
+ 2020-10-17T23:45:25Z
+ PhotoAnalysisGraphLastBackgroundGraphConsistencyUpdateJobDateKey
+ 2020-10-17T23:45:33Z
+ PhotoAnalysisGraphLastBackgroundGraphRebuildJobDate
+ 2020-10-17T23:45:24Z
+ PhotoAnalysisGraphLastBackgroundMemoryGenerationJobDate
+ 2020-10-17T23:45:26Z
+ SiriPortraitDonation
+ 2020-10-17T23:45:25Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb
new file mode 100644
index 00000000..54901267
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist
new file mode 100644
index 00000000..7eb12914
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/ftemetrics b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/ftemetrics
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist
new file mode 100644
index 00000000..bf8f1e5d
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ revgeoprovider
+ 7618
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/03632B38-194C-45C6-9FF7-6586DF36F8E0.cmap b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/03632B38-194C-45C6-9FF7-6586DF36F8E0.cmap
new file mode 100644
index 00000000..093a69f8
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/03632B38-194C-45C6-9FF7-6586DF36F8E0.cmap differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/7DF33429-F03C-4A82-95C8-89D32BDB785C.cmap b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/7DF33429-F03C-4A82-95C8-89D32BDB785C.cmap
new file mode 100644
index 00000000..4555aae6
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/7DF33429-F03C-4A82-95C8-89D32BDB785C.cmap differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data
new file mode 100644
index 00000000..dc78ca7f
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter
new file mode 100644
index 00000000..1f8dd014
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter
@@ -0,0 +1,14 @@
+
+
+
+
+ NumberOfFacesProcessedOnLastRun
+ 11
+ ProcessedInQuiescentState
+
+ SuggestedMeIdentifier
+
+ Version
+ 4
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist
new file mode 100644
index 00000000..83f200a6
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ FaceIDModelLastGenerationKey
+ 2020-10-17T23:45:32Z
+ LastContactClassificationKey
+ 2020-10-17T23:45:54Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist
new file mode 100644
index 00000000..cb4560b6
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PVClustererBringUpState
+ 50
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist
new file mode 100644
index 00000000..c36206de
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ IncrementalPersonProcessingStage
+ 6
+ PersonBuilderLastMinimumFaceGroupSizeForCreatingMergeCandidates
+ 15
+ PersonBuilderMergeCandidatesEnabled
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/vnpersonsmodel.bin b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/vnpersonsmodel.bin
new file mode 100644
index 00000000..e71756fa
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/vnpersonsmodel.bin differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotoAnalysisServicePreferences.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotoAnalysisServicePreferences.plist
new file mode 100644
index 00000000..be5ca4c7
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotoAnalysisServicePreferences.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ PhotoAnalysisGraphLastBackgroundGraphRebuildJobDate
+ 2019-08-07T02:26:15Z
+ PhotoAnalysisGraphLastBackgroundMemoryGenerationJobDate
+ 2019-08-17T14:26:34Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb
new file mode 100644
index 00000000..96fee1ce
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/construction-photosgraph.graphdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb
new file mode 100644
index 00000000..4d8a5dfb
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/liveupdate-photosgraph.graphdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb
new file mode 100644
index 00000000..96fee1ce
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph-tmp.graphdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb
new file mode 100644
index 00000000..147ce400
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb-shm b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb-shm differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb-wal b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/graph/PhotosGraph/photosgraph.graphdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/2E578BF2-718A-43E1-81BA-80AC61004DCF.cmap b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/2E578BF2-718A-43E1-81BA-80AC61004DCF.cmap
new file mode 100644
index 00000000..4aaf1638
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/2E578BF2-718A-43E1-81BA-80AC61004DCF.cmap differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/AlgoFaceClusterCache.data b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/AlgoFaceClusterCache.data
new file mode 100644
index 00000000..1f14d535
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/AlgoFaceClusterCache.data differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/C7589FFF-A378-4059-ABDC-19C4316A8B69.cmap b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/C7589FFF-A378-4059-ABDC-19C4316A8B69.cmap
new file mode 100644
index 00000000..1d6b6446
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/C7589FFF-A378-4059-ABDC-19C4316A8B69.cmap differ
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/PersonPromoter b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/PersonPromoter
new file mode 100644
index 00000000..4fdc85b4
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/PersonPromoter
@@ -0,0 +1,12 @@
+
+
+
+
+ ProcessedInQuiescentState
+
+ SuggestedMeIdentifier
+
+ Version
+ 3
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/clustererState.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/clustererState.plist
new file mode 100644
index 00000000..cb4560b6
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/clustererState.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PVClustererBringUpState
+ 50
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/faceWorkerState.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/faceWorkerState.plist
new file mode 100644
index 00000000..736db69d
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photoanalysisd/vision/faceWorkerState.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ IncrementalPersonProcessingStage
+ 0
+ PersonBuilderLastMinimumFaceGroupSizeForCreatingMergeCandidates
+ 15
+ PersonBuilderMergeCandidatesEnabled
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist
new file mode 100644
index 00000000..2120d8ee
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PLLibraryServicesManager.LocaleIdentifier
+ en_US
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/private/com.apple.photomodel/appPrivateData.plist b/tests/Test-10.15.7.photoslibrary/private/com.apple.photomodel/appPrivateData.plist
new file mode 100644
index 00000000..106cedb0
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/private/com.apple.photomodel/appPrivateData.plist
@@ -0,0 +1,11 @@
+
+
+
+
+ LithiumMessageTracer
+
+ LastReportedDate
+ 2019-08-04T13:32:55Z
+
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/.metadata_never_index b/tests/Test-10.15.7.photoslibrary/resources/.metadata_never_index
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_1_105_c.jpeg
new file mode 100644
index 00000000..8a612cdc
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_1_105_c.jpeg
new file mode 100644
index 00000000..c19de1d4
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_100_o.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_100_o.jpeg
new file mode 100644
index 00000000..d5ece67d
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_100_o.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_105_c.jpeg
new file mode 100644
index 00000000..bb5e38af
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_105_c.jpeg
new file mode 100644
index 00000000..c36ba3a5
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_1_105_c.jpeg
new file mode 100644
index 00000000..4b8730c6
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/71E3E212-00EB-430D-8A63-5E294B268554_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/71E3E212-00EB-430D-8A63-5E294B268554_1_105_c.jpeg
new file mode 100644
index 00000000..ccbb2fd0
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/71E3E212-00EB-430D-8A63-5E294B268554_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_105_c.jpeg
new file mode 100644
index 00000000..1aed5919
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8846E3E6-8AC8-4857-8448-E3D025784410_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8846E3E6-8AC8-4857-8448-E3D025784410_1_105_c.jpeg
new file mode 100644
index 00000000..539b4e59
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8846E3E6-8AC8-4857-8448-E3D025784410_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_1_105_c.jpeg
new file mode 100644
index 00000000..312b01d2
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_1_105_c.jpeg
new file mode 100644
index 00000000..f8943c5c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_1_105_c.jpeg
new file mode 100644
index 00000000..82af4102
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_100_o.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_100_o.jpeg
new file mode 100644
index 00000000..03d2c6ce
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_100_o.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_105_c.jpeg
new file mode 100644
index 00000000..82a19c3a
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D79B8D77-BFFC-460B-9312-034F2877D35B_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D79B8D77-BFFC-460B-9312-034F2877D35B_1_105_c.jpeg
new file mode 100644
index 00000000..4f0c1479
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/D79B8D77-BFFC-460B-9312-034F2877D35B_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_105_c.jpeg
new file mode 100644
index 00000000..5a00c324
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_105_c.jpeg
new file mode 100644
index 00000000..db88ba04
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_1_105_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_1_105_c.jpeg
new file mode 100644
index 00000000..6881aa31
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_1_105_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_4_5005_c.jpeg
new file mode 100644
index 00000000..839cdcbd
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/1/1EB2B765-0765-43BA-A90C-0D0580E6172C_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_4_5005_c.jpeg
new file mode 100644
index 00000000..e68f1ee6
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/3/3DD2C897-F19E-4CA6-8C22-B027D5A71907_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4_5005_c.jpeg
new file mode 100644
index 00000000..a4a8a5ed
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/4/4D521201-92AC-43E5-8F7C-59BC41C37A96_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_4_5005_c.jpeg
new file mode 100644
index 00000000..4e1d70f6
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_4_5005_c.jpeg
new file mode 100644
index 00000000..03d0ff79
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/6/6FD38366-3BF2-407D-81FE-7153EB6125B6_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/71E3E212-00EB-430D-8A63-5E294B268554_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/71E3E212-00EB-430D-8A63-5E294B268554_4_5005_c.jpeg
new file mode 100644
index 00000000..c48aa6ea
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/71E3E212-00EB-430D-8A63-5E294B268554_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_4_5005_c.jpeg
new file mode 100644
index 00000000..ced2af2b
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8846E3E6-8AC8-4857-8448-E3D025784410_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8846E3E6-8AC8-4857-8448-E3D025784410_4_5005_c.jpeg
new file mode 100644
index 00000000..a2680855
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8846E3E6-8AC8-4857-8448-E3D025784410_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_4_5005_c.jpeg
new file mode 100644
index 00000000..c0d826ff
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/8/8E1D7BC9-9321-44F9-8CFB-4083F6B9232A_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_4_5005_c.jpeg
new file mode 100644
index 00000000..b3e0f930
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4_5005_c.jpeg
new file mode 100644
index 00000000..c41dcce5
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/A/A92D9C26-3A50-4197-9388-CB5F7DB9FA91_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_4_5005_c.jpeg
new file mode 100644
index 00000000..f4939048
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D79B8D77-BFFC-460B-9312-034F2877D35B_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D79B8D77-BFFC-460B-9312-034F2877D35B_4_5005_c.jpeg
new file mode 100644
index 00000000..3cdee08c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/D79B8D77-BFFC-460B-9312-034F2877D35B_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/DC99FBDD-7A52-4100-A5BB-344131646C30_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/DC99FBDD-7A52-4100-A5BB-344131646C30_4_5005_c.jpeg
new file mode 100644
index 00000000..6e9e2b12
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/D/DC99FBDD-7A52-4100-A5BB-344131646C30_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_4_5005_c.jpeg
new file mode 100644
index 00000000..f510f714
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_4_5005_c.jpeg b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_4_5005_c.jpeg
new file mode 100644
index 00000000..95c0ea85
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/masters/F/F12384F6-CD17-4151-ACBA-AE0E3688539E_4_5005_c.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/3305.ithmb b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/3305.ithmb
new file mode 100644
index 00000000..acd4974d
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/3305.ithmb differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4031.ithmb b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4031.ithmb
new file mode 100644
index 00000000..47c751f8
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4031.ithmb differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4132.ithmb b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4132.ithmb
new file mode 100644
index 00000000..eeef704f
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/4132.ithmb differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
new file mode 100644
index 00000000..8c122be1
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
@@ -0,0 +1,10 @@
+
+
+
+
+ PLThumbnailManagerThumbnailFormatKey
+ 5005
+ PLThumbnailManagerVersionKey
+ 28
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Album-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Album-change.plj
new file mode 100644
index 00000000..c34ef490
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Album-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Album-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Album-snapshot.plj
new file mode 100644
index 00000000..242008b2
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Album-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Album.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Album.plist
new file mode 100644
index 00000000..523b84b5
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Album.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-04-11T19:26:12Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-change.plj
new file mode 100644
index 00000000..2e41a433
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-snapshot.plj
new file mode 100644
index 00000000..5d4b6fe5
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Asset.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset.plist
new file mode 100644
index 00000000..43b9c778
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Asset.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-05-29T15:20:05Z
+ coalescePayloadVersion
+ 10
+ currentPayloadVersion
+ 10
+ snapshotDate
+ 2019-11-11T04:16:28Z
+ snapshotPayloadVersion
+ 10
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/DeferredRebuildFace-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/DeferredRebuildFace-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/DeferredRebuildFace.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/DeferredRebuildFace.plist
new file mode 100644
index 00000000..3a4b9140
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/DeferredRebuildFace.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:57Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-change.plj
new file mode 100644
index 00000000..c86a4796
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-snapshot.plj
new file mode 100644
index 00000000..1a00fa8d
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace.plist
new file mode 100644
index 00000000..a7b3527b
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/DetectedFace.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2019-10-27T15:36:05Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/FetchingAlbum-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/FetchingAlbum-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/FetchingAlbum.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/FetchingAlbum.plist
new file mode 100644
index 00000000..3ece9a2c
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/FetchingAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume-snapshot.plj
new file mode 100644
index 00000000..71155590
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume.plist
new file mode 100644
index 00000000..ac1db136
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/FileSystemVolume.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-05-29T15:20:05Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-change.plj
new file mode 100644
index 00000000..e0384369
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-snapshot.plj
new file mode 100644
index 00000000..2e6a4601
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Folder.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder.plist
new file mode 100644
index 00000000..ac1db136
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Folder.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-05-29T15:20:05Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/HistoryToken.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/HistoryToken.plist
new file mode 100644
index 00000000..47943276
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/HistoryToken.plist differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-change.plj
new file mode 100644
index 00000000..20fe3a9c
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-snapshot.plj
new file mode 100644
index 00000000..b70f6df4
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession.plist
new file mode 100644
index 00000000..ac1db136
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/ImportSession.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-05-29T15:20:05Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-change.plj
new file mode 100644
index 00000000..c605f9de
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-snapshot.plj
new file mode 100644
index 00000000..f512308e
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword.plist
new file mode 100644
index 00000000..3ece9a2c
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Keyword.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Memory-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Memory-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Memory.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Memory.plist
new file mode 100644
index 00000000..3ece9a2c
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Memory.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Person-change.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Person-change.plj
new file mode 100644
index 00000000..bb5e8461
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Person-change.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Person-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/Person-snapshot.plj
new file mode 100644
index 00000000..8e7d5719
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/journals/Person-snapshot.plj differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/Person.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/Person.plist
new file mode 100644
index 00000000..3ece9a2c
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/Person.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/ProjectAlbum-snapshot.plj b/tests/Test-10.15.7.photoslibrary/resources/journals/ProjectAlbum-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-10.15.7.photoslibrary/resources/journals/ProjectAlbum.plist b/tests/Test-10.15.7.photoslibrary/resources/journals/ProjectAlbum.plist
new file mode 100644
index 00000000..3ece9a2c
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/journals/ProjectAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2019-10-27T15:02:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.plist b/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.plist
new file mode 100644
index 00000000..b69a9147
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ bZBNS8NAEIb/y5xDaGxTSa62Yi8VFFQQD5PspJmS3Q27k15C/ruTBBTB68zzfsyMcKMQ
+ 2buTazyUI1QDd+Y82IoClJAVj8UeEsC+f1u5eZhnaVakWb7RTaxbsvhCN163WQJ9h9L4
+ YBV9fv2AKQFLggYF5wCLUSi8s5EWyrvN7l4F3FPHjn4jVJfu1H2Fn4gvraj3dp8n4AOT
+ E5Q1Tt3nLJQfsTZAcx2iWMUilJ/jPwQ5rDoyUEoYSK8gEXaXOBekpqH6L7xMzmhJq20P
+ h4DqxvWD9918HRsN4oaXjx0XFqav6Rs=
+
+ adjustmentEditorBundleID
+ com.apple.Photos
+ adjustmentFormatIdentifier
+ com.apple.photo
+ adjustmentFormatVersion
+ 1.4
+ adjustmentTimestamp
+ 2020-05-29T03:39:38Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_201_a.jpeg b/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_201_a.jpeg
new file mode 100644
index 00000000..c2b53111
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/renders/6/6191423D-8DB8-4D4C-92BE-9BBBA308AAC4_1_201_a.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.plist b/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.plist
new file mode 100644
index 00000000..7f47da2b
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266.plist
@@ -0,0 +1,68 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ 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
+ rpj9/b9//xc=
+
+ adjustmentEditorBundleID
+ com.apple.Photos
+ adjustmentFormatIdentifier
+ com.apple.photo
+ adjustmentFormatVersion
+ 1.5
+ adjustmentTimestamp
+ 2020-10-03T22:54:20Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_201_a.jpeg b/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_201_a.jpeg
new file mode 100644
index 00000000..b8b15f53
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/renders/7/7783E8E6-9CAC-40F3-BE22-81FB7051C266_1_201_a.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30.plist b/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30.plist
new file mode 100644
index 00000000..b298f6be
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ shkyAAAAAAACAAAA
+
+ adjustmentEditorBundleID
+ com.apple.Photos
+ adjustmentFormatIdentifier
+ com.apple.Photos.externalEdit
+ adjustmentFormatVersion
+ 1
+ adjustmentTimestamp
+ 2019-12-01T15:27:48Z
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_201_a.jpeg b/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_201_a.jpeg
new file mode 100644
index 00000000..7bcb36b9
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/renders/D/DC99FBDD-7A52-4100-A5BB-344131646C30_1_201_a.jpeg differ
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.plist b/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.plist
new file mode 100644
index 00000000..4117c731
--- /dev/null
+++ b/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51.plist
@@ -0,0 +1,25 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ bVFNT4RADP0vPSNh+FgWbsbE6MVNNFET42F2KVADAxnKqiH8dwvIukZP0+l77XtvZoAj
+ 2o4ac2vyBtIB9j1V2V1f79FCCmp7rQIfHNBt+7gQpRuEkXJjV/meIN2hxFrf45EWVDnQ
+ VprzxtZC3T08w+hAjawzzXpSqHXHaJ8o4xJS3wu3MkAtVmTwR0Lm3FC2L+QbpKJk2R1s
+ YgcaS2hY8yIn2yctzadhcaCzt77jWmgdpC/DPww0el9hBinbHiUFMpMpuslgeVLzI0HY
+ 6umO5tIUFUJ64TlwaMzcN/ydQ3rvS6Uif+PAx85SQWYGPtdanQ+umTwJQJk4pZzmN7+y
+ TTu9eM/zh6znHx/eb5VVPk5E5hRBJdGZgcQbx/F1/AI=
+
+ adjustmentEditorBundleID
+ com.apple.photos
+ adjustmentFormatIdentifier
+ com.apple.photo
+ adjustmentFormatVersion
+ 1.4
+ adjustmentRenderTypes
+ 0
+
+
diff --git a/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_201_a.jpeg b/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_201_a.jpeg
new file mode 100644
index 00000000..88caa537
Binary files /dev/null and b/tests/Test-10.15.7.photoslibrary/resources/renders/E/E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51_1_201_a.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/DataModelVersion.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/DataModelVersion.plist
new file mode 100644
index 00000000..be9740fe
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/DataModelVersion.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ LibrarySchemaVersion
+ 5001
+ MetaSchemaVersion
+ 3
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite
new file mode 100644
index 00000000..3b46e8ef
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-shm
new file mode 100644
index 00000000..1ffbc16b
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-wal
new file mode 100644
index 00000000..9311bdca
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite.lock b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite.lock
new file mode 100644
index 00000000..541e5308
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/Photos.sqlite.lock
@@ -0,0 +1,16 @@
+
+
+
+
+ hostname
+ Rhets-MacBook-Pro.local
+ hostuuid
+ 9575E48B-8D5F-5654-ABAC-4431B1167324
+ pid
+ 1797
+ processname
+ photolibraryd
+ uid
+ 501
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/metaSchema.db b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/metaSchema.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/metaSchema.db differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/photos.db b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/photos.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/photos.db differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/protection b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/protection
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/graphDataProgress.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/graphDataProgress.plist
new file mode 100644
index 00000000..c4e5e427
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/graphDataProgress.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite
new file mode 100644
index 00000000..ab480759
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/psi.sqlite-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchMetadata.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchMetadata.plist
new file mode 100644
index 00000000..3eec4180
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchMetadata.plist
@@ -0,0 +1,188 @@
+
+
+
+
+ BlacklistedMeaningsByMeaning
+
+ MePersonUUID
+ 39488755-78C0-40B2-B378-EDA280E1823C
+ SceneWhitelist
+
+ Graduation
+ Aquarium
+ Food
+ Ice Skating
+ Mountain
+ Cliff
+ Basketball
+ Tennis
+ Jewelry
+ Cheese
+ Softball
+ Football
+ Circus
+ Jet Ski
+ Playground
+ Carousel
+ Paint Ball
+ Windsurfing
+ Sailboat
+ Sunbathing
+ Dam
+ Fireplace
+ Flower
+ Scuba
+ Hiking
+ Cetacean
+ Pier
+ Bowling
+ Snowboarding
+ Zoo
+ Snowmobile
+ Theater
+ Boat
+ Casino
+ Car
+ Diving
+ Cycling
+ Musical Instrument
+ Board Game
+ Castle
+ Sunset Sunrise
+ Martial Arts
+ Motocross
+ Submarine
+ Cat
+ Snow
+ Kiteboarding
+ Squash
+ Geyser
+ Music
+ Archery
+ Desert
+ Blackjack
+ Fireworks
+ Sportscar
+ Feline
+ Soccer
+ Museum
+ Baby
+ Fencing
+ Railroad
+ Nascar
+ Sky Surfing
+ Bird
+ Games
+ Baseball
+ Dressage
+ Snorkeling
+ Pyramid
+ Kite
+ Rowboat
+ Golf
+ Watersports
+ Lightning
+ Canyon
+ Auditorium
+ Night Sky
+ Karaoke
+ Skiing
+ Parade
+ Forest
+ Hot Air Balloon
+ Dragon Parade
+ Easter Egg
+ Monument
+ Jungle
+ Thanksgiving
+ Jockey Horse
+ Stadium
+ Airplane
+ Ballet
+ Yoga
+ Coral Reef
+ Skating
+ Wrestling
+ Bicycle
+ Tattoo
+ Amusement Park
+ Canoe
+ Cheerleading
+ Ping Pong
+ Fishing
+ Magic
+ Reptile
+ Winter Sport
+ Waterfall
+ Train
+ Bonsai
+ Surfing
+ Dog
+ Cake
+ Sledding
+ Sandcastle
+ Glacier
+ Lighthouse
+ Equestrian
+ Rafting
+ Shore
+ Hockey
+ Santa Claus
+ Formula One Car
+ Sport
+ Vehicle
+ Boxing
+ Rollerskating
+ Underwater
+ Orchestra
+ Carnival
+ Rocket
+ Skateboarding
+ Helicopter
+ Performance
+ Oktoberfest
+ Water Polo
+ Skate Park
+ Animal
+ Nightclub
+ String Instrument
+ Dinosaur
+ Gymnastics
+ Cricket
+ Volcano
+ Lake
+ Aurora
+ Dancing
+ Concert
+ Rock Climbing
+ Hang Glider
+ Rodeo
+ Fish
+ Art
+ Motorcycle
+ Volleyball
+ Wake Boarding
+ Badminton
+ Motor Sport
+ Sumo
+ Parasailing
+ Skydiving
+ Kickboxing
+ Pinata
+ Foosball
+ Go Kart
+ Poker
+ Kayak
+ Swimming
+ Atv
+ Beach
+ Dartboard
+ Athletics
+ Camping
+ Tornado
+ Billiards
+ Rugby
+ Airshow
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchProgress.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchProgress.plist
new file mode 100644
index 00000000..ad779080
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchProgress.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ insertAlbum
+
+ insertAsset
+
+ insertHighlight
+
+ insertMemory
+
+ insertMoment
+
+ removeAlbum
+
+ removeAsset
+
+ removeHighlight
+
+ removeMemory
+
+ removeMoment
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchSystemInfo.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchSystemInfo.plist
new file mode 100644
index 00000000..f6d69ef7
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/searchSystemInfo.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ embeddingVersion
+ 1
+ localeIdentifier
+ en_US
+ sceneTaxonomySHA
+ 87914a047c69fbe8013fad2c70fa70c6c03b08b56190fe4054c880e6b9f57cc3
+ searchIndexVersion
+ 10
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/synonymsProcess.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/synonymsProcess.plist
new file mode 100644
index 00000000..58e48cc1
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/synonymsProcess.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/zeroKeywords.data b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/zeroKeywords.data
new file mode 100644
index 00000000..cb4f7e5e
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/database/search/zeroKeywords.data differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546.jpeg
new file mode 100644
index 00000000..829a2345
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_5.xmp b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_5.xmp
new file mode 100644
index 00000000..96ebfaf3
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_5.xmp
@@ -0,0 +1,21 @@
+
+
+
+ K
+ 0.0
+ 2001-01-01T00:00:00Z
+ 249.12033076703736
+ W
+ 0
+ 77.041763833333334
+ 38.917405000000002
+ N
+ T
+ 41.118671396323769
+ 0.0
+ 2020-02-04T19:07:38-05:00
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.jpeg
new file mode 100644
index 00000000..ee8fcafb
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C.jpeg
new file mode 100644
index 00000000..9e7d8551
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_5.xmp b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_5.xmp
new file mode 100644
index 00000000..2fe88331
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/originals/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_5.xmp
@@ -0,0 +1,21 @@
+
+
+
+ K
+ 0.0
+ 2001-01-01T00:00:00Z
+ 296.34306329944246
+ W
+ 0
+ 156.44366333333335
+ 20.687278333333332
+ N
+ T
+ 19.838471419396274
+ 0.0
+ 2019-09-15T18:37:17-10:00
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.Photos/appPrivateData.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.Photos/appPrivateData.plist
new file mode 100644
index 00000000..08370bf1
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.Photos/appPrivateData.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ CollapsedSidebarSectionIdentifiers
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db
new file mode 100644
index 00000000..c6d4691f
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm
new file mode 100644
index 00000000..5b9926f7
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite
new file mode 100644
index 00000000..11c1efd8
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm
new file mode 100644
index 00000000..9792a45a
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal
new file mode 100644
index 00000000..aa0e2002
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.AOI.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite
new file mode 100644
index 00000000..f842f81e
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm
new file mode 100644
index 00000000..d44d683d
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal
new file mode 100644
index 00000000..3299e266
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.Nature.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite
new file mode 100644
index 00000000..d31605b9
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.POI.sqlite-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite
new file mode 100644
index 00000000..b1f8043b
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm
new file mode 100644
index 00000000..a15c209c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal
new file mode 100644
index 00000000..b54ba111
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSBusinessCategoryCache.ROI.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite
new file mode 100644
index 00000000..c80d637a
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm
new file mode 100644
index 00000000..e9438c7b
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal
new file mode 100644
index 00000000..53f1c812
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSContactCache.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite
new file mode 100644
index 00000000..ca571dd8
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm
new file mode 100644
index 00000000..b5ef8666
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal
new file mode 100644
index 00000000..6179dabe
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSLocationCache.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite
new file mode 100644
index 00000000..0be79059
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm
new file mode 100644
index 00000000..b35295e3
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal
new file mode 100644
index 00000000..80a0982d
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/CLSPublicEventCache.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm
new file mode 100644
index 00000000..653f7efb
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal
new file mode 100644
index 00000000..ac36eeef
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGCurationCache.sqlite.sqlite-wal differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist
new file mode 100644
index 00000000..814edc95
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSearchComputationCache.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist
new file mode 100644
index 00000000..0de953ba
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PGSharingFeatureExtractorRecords.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist
new file mode 100644
index 00000000..7bb858fa
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServicePreferences.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ BackgroundHighlightCollection
+ 2020-03-21T05:58:14Z
+ BackgroundHighlightEnrichment
+ 2020-03-21T05:58:14Z
+ BackgroundJobAssetRevGeocode
+ 2020-03-21T05:58:14Z
+ BackgroundJobSearch
+ 2020-03-21T05:58:14Z
+ BackgroundPeopleSuggestion
+ 2020-03-21T05:58:14Z
+ BackgroundUserBehaviorProcessor
+ 2020-03-21T05:58:14Z
+ PhotoAnalysisGraphLastBackgroundGraphConsistencyUpdateJobDateKey
+ 2020-03-21T06:37:39Z
+ PhotoAnalysisGraphLastBackgroundGraphRebuildJobDate
+ 2020-03-21T05:58:14Z
+ PhotoAnalysisGraphLastBackgroundMemoryGenerationJobDate
+ 2020-03-21T05:58:15Z
+ SiriPortraitDonation
+ 2020-03-21T05:58:14Z
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/construction-photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/liveupdate-photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb
new file mode 100644
index 00000000..4ab71e6c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph-tmp.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb
new file mode 100644
index 00000000..821d0215
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-shm differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-wal b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotosGraph/photosgraph.kgdb-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist
new file mode 100644
index 00000000..6666c0b7
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/changetoken.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist
new file mode 100644
index 00000000..bf8f1e5d
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/graph/revgeoprovider.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ revgeoprovider
+ 7618
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data
new file mode 100644
index 00000000..13f5d7fa
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/AlgoFaceClusterCache.data differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter
new file mode 100644
index 00000000..798c98a5
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PersonPromoter
@@ -0,0 +1,12 @@
+
+
+
+
+ NumberOfFacesProcessedOnLastRun
+ 0
+ ProcessedInQuiescentState
+
+ Version
+ 4
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist
new file mode 100644
index 00000000..1714ed4d
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/PhotoAnalysisServicePreferences.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ LastContactClassificationKey
+ 2020-03-21T06:34:57Z
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist
new file mode 100644
index 00000000..cb4560b6
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/clustererState.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PVClustererBringUpState
+ 50
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist
new file mode 100644
index 00000000..c36206de
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photoanalysisd/caches/vision/faceWorkerState.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ IncrementalPersonProcessingStage
+ 6
+ PersonBuilderLastMinimumFaceGroupSizeForCreatingMergeCandidates
+ 15
+ PersonBuilderMergeCandidatesEnabled
+
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist
new file mode 100644
index 00000000..2120d8ee
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photolibraryd/appPrivateData.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ PLLibraryServicesManager.LocaleIdentifier
+ en_US
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20200320-225554-07:00 b/tests/Test-Places-Catalina-10_15_7.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20200320-225554-07:00
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_1_105_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_1_105_c.jpeg
new file mode 100644
index 00000000..b85ba86c
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_1_105_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_105_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_105_c.jpeg
new file mode 100644
index 00000000..357e9577
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_105_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_1_105_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_1_105_c.jpeg
new file mode 100644
index 00000000..c9b078c3
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_1_105_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_4_5005_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_4_5005_c.jpeg
new file mode 100644
index 00000000..c48aa6ea
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/1/128FB4C6-0B16-4E7D-9108-FB2E90DA1546_4_5005_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_4_5005_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_4_5005_c.jpeg
new file mode 100644
index 00000000..578b2e4d
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_4_5005_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_4_5005_c.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_4_5005_c.jpeg
new file mode 100644
index 00000000..a47daf4e
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/masters/F/FF7AFE2C-49B0-4C9B-B0D7-7E1F8B8F2F0C_4_5005_c.jpeg differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/3305.ithmb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/3305.ithmb
new file mode 100644
index 00000000..ac45877b
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/3305.ithmb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4031.ithmb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4031.ithmb
new file mode 100644
index 00000000..3ba7f98d
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4031.ithmb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4132.ithmb b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4132.ithmb
new file mode 100644
index 00000000..66c1e0bb
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/4132.ithmb differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
new file mode 100644
index 00000000..8c122be1
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
@@ -0,0 +1,10 @@
+
+
+
+
+ PLThumbnailManagerThumbnailFormatKey
+ 5005
+ PLThumbnailManagerVersionKey
+ 28
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Album-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Album-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Album.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Album.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Album.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-change.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-change.plj
new file mode 100644
index 00000000..ceb6c305
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-change.plj differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-snapshot.plj
new file mode 100644
index 00000000..1e007b48
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset-snapshot.plj differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset.plist
new file mode 100644
index 00000000..5d11f593
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Asset.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-03-21T06:33:08Z
+ coalescePayloadVersion
+ 10
+ currentPayloadVersion
+ 10
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 10
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DeferredRebuildFace-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DeferredRebuildFace-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DeferredRebuildFace.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DeferredRebuildFace.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DeferredRebuildFace.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DetectedFace-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DetectedFace-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DetectedFace.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DetectedFace.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/DetectedFace.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FetchingAlbum-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FetchingAlbum-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FetchingAlbum.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FetchingAlbum.plist
new file mode 100644
index 00000000..e83de127
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FetchingAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 2
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 2
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FileSystemVolume-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FileSystemVolume-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FileSystemVolume.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FileSystemVolume.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/FileSystemVolume.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-change.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-change.plj
new file mode 100644
index 00000000..fea79692
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-change.plj differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-snapshot.plj
new file mode 100644
index 00000000..f3174737
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder-snapshot.plj differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Folder.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/HistoryToken.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/HistoryToken.plist
new file mode 100644
index 00000000..7b89b94e
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/HistoryToken.plist differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession-snapshot.plj
new file mode 100644
index 00000000..60c80ae1
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession-snapshot.plj differ
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession.plist
new file mode 100644
index 00000000..477f7d91
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ImportSession.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ coalesceDate
+ 2020-03-21T06:33:08Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Keyword-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Keyword-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Keyword.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Keyword.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Keyword.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Memory-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Memory-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Memory.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Memory.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Memory.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Person-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Person-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Person.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Person.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/Person.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ProjectAlbum-snapshot.plj b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ProjectAlbum-snapshot.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ProjectAlbum.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ProjectAlbum.plist
new file mode 100644
index 00000000..ffbfd39e
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/journals/ProjectAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2020-03-21T05:55:55Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.plist b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.plist
new file mode 100644
index 00000000..6eccd6fd
--- /dev/null
+++ b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F.plist
@@ -0,0 +1,69 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ bVdXs6PKEf4vetV6z5Bhq/wgJDIIacj4+IEcRA4ScGv/u9HZe+0t27zA9HTumebrPw7P
+ ZBiLtpGatD38+OMQzkUVX+c6TIbDjwPCiOjh2yHoOvsX25tGIt/BdwQF+8YY5UkdwORZ
+ /NpEvh26KpjSdqh3Tt1wDz+/HepkCuJgCt7q62CcksEp4ik//EBxnN4Fii6piib5j4Vd
+ 7ju+a//FLCZFlk9/cbdDkTRTMP0yt2t/2wqmfwvvHgRxOY9TvbONhx//+OP/cCRNEFZJ
+ fPgxDXOyR5FMU9Fk49vBNk33pdpGQaX+sgu+/UkU93X1pu2M4DuK4CjGkAygUITEGeLb
+ oWi6efpvIW7p2nEekt9IbBVEj1tbNL/zscNbsEnGXfnfdu0AZyhqjxgnMBLQ6O70+I56
+ nIroy88OoG8vAIoRKIMjCEXiFCBoGt0TSoD3FoYTgKEBxqAIQdIkSu2ZmafWDqr57c13
+ BIA9n+HvznwHgNm1MRQJ9vrSDEZS5LfD1DZBBYMm+xJDMYwkyLcthmFIitjVdijxJcwA
+ hCEBReMYglEo8VVchn5v0b9R31z7zlcmtaDb62068OaDuIBIJzgP2zUqRPcQ9mELhBvZ
+ +eq4cZrWwS3s/LVx98PTs1iDFXmqkNzk6UhKsVuD6ornIn7C+6tdE1ZU+YiFyZoPlsKo
+ r4oLlsysr9BH5NZCKyNAfOA2SJ7WiuIT1/4hoEboy9NDmO9BB4daEG5eK8cpDxcT9XWv
+ mgjX7bzE5nsbq9yk8kkL829hxXe2KFv7u7ecxYkq4uiJRJo6ysWXYJnVAus2RJBWs+i4
+ XRgD4mk4Mu+Aq+l5TFlUteTgS12g9T307bIQFN7z2DRFFtpuJjdCJsJpuiwTWMoTpzRB
+ z6yLLX6M+LMtIPfAQgZoIxfb4u93i9ga7FzbfUf0opHFcgfq5hyGstyWaCIGUl7kVXd0
+ mylJBfnzw3OZNOUX1MHiKLEr1HYQM3gwjVHzgg1k626fPj9MSVmzyFbW1iFS6ooPjTOm
+ ZIcNjdBEPTtV9Wp6BFvmF+Ps4XZdCLrgSbGccwLnYkQYV/5iOfnVt+IA8vBkboSW014N
+ lg2a9FFbvIIIqFmcvQTN1foyi2gfkxLeNkqtyN1QYWcnIvK13oQ8kK91URGU3fA3/zEV
+ sMovFpDhncPz7ZyaxvhKQXcRHa1FlnZlwtERgPf5IZeRwi7n4+cHHLmxx5JXGkxI6zqx
+ 5BNrL6zBnmOYWatpSPbFsWB6r7TPD4tIVchIDVqqsIq5/GUIjEgd4SqU/i2eLcwyb258
+ yteze1YGkhtbZYuGU15jThj516oS9Njx41sAuodRy2IM4vQ6Ptbt7JpGLEDgX/RyHKuF
+ aFzI4DixueH1iiaokQZqROezh/Gldiqf5+CRKjneuUUVEHFdIonh9IzX2IYZdKizOaWu
+ XPEEWcNEmwJ/2y7WffZLfBsqGXV8gkwz9TgC3EjdB33UF1hX2WgoT68/FuHxNLp6HPoM
+ M9ZFYRPM1vqmpk77HYGbKUxRi15ukVxnU3D5/Kjrm/RCt3LuZ/xJlG4H9T5Bu9AT6dUC
+ 0vr5UQzE+sSSJuzyokDWs1Uzdo2gesxo4VRcXG0aczSnojamG8J4lpqefX6QljrdEqaj
+ yot10wFC+lSaXAu4eQ2bqTboCsVxW0DmNkK6Te7F29EPeoef2015RKAELOXLcfvA1oZT
+ 5mzbU9nqug2oizkqaESRnZo9xslaWoNOBnZpnOBuYHgc23B2XDlJVoJxPa7PJAXL1Vl/
+ EaK0lyBa2CkRL1pKnrFCO9IIVYbT7Yg3Ebfl6pi9Xti8xko+VWgh+22UZIv9+eFIMGmR
+ Y85hkhGdaC3vj9yU14QY0t1imsYtxiMEvoBEnir87IfqwL0W0y3UGJSbF/JaeN86YXUD
+ kh07VIlFCek7Tgd8AG7i7hEnzOqM11hOofuy2AR7rME2OILU+tjl0kqolWx77bU4G9BH
+ 6pjavc7KhJQHnZvakhNJ4tVC3eM7YKR3ZuaayI9lgXqEqP50brISc/4NRpSoSeG03hRp
+ snmU3zz9fXgLUVavVrOYmySrsJwlA1PUV9KihcG7RJjmMs41rZVAKSipGc6EwDxC8gTY
+ 7SZqo2WxKC5WLx8aqajHXOmckVWKdr2G7CmxN2ClKEte3LZLfxOlPM7YieLKzMogf4Re
+ oM8tuddg1hf5opnjmLzYzw9BEDj/CvcPedLylWV0CZGiYWGuksbV4HwT5aBNGqGwBDFz
+ 04d85M8PS4V7w5KmMvdqrFALeZY2pRwd7YXcJCHEg4CtRPGSJQVbA5kG7pVlZMH0ou0s
+ EIoakwM81qKy9/jckHlPM/ZWr4ad/ayEXsnV4jzizpyHkHpJNentDW/JkycPLFfK51Qo
+ 6dxaXpR4oVN8fcbi1VfBql4kFTd1NnjxAWcZUMn5cIwAX3x+KOTLmCWBSAMG6xu9EPuc
+ G7F+FYLWG/J7ypu0r7MtztueJS+DBWPyuiGDXjL3aatE9q5FRg+lnusIbG5qKqYqtF4U
+ gg9pa8Q+P87ZcD4/JZUXwswLWBvy5uhuC5UJsmbwi11dY27Z+8s91FZ+RbcTVDmrX4L9
+ 51ufe6zv42ABe0MtONO75blA8aPmz/xTue8YcVm2qxB5lgdjmt+iBMvvmeDeC3AWz6LG
+ pRtsOJ5orZdEqQV9Fp6e8cpUmZqbBMQkuIsnHF7W0UhYNuBD3APsUxcizQ1h9PnBM9Fe
+ morkVzxsWCKRLCvQ4b3itocxIM29pPnkiSdE1hPnsemfAdmt/QtXLpSky+x55oY8WDxR
+ NSbLTZe44YvMWdhUE+qHb7MLVKoxtdlKELrMeoJQFSLLXWHD54xczouB8yH/+TE0A8eN
+ 0v1ZJODSefcn52p8n7kqLDDxKjlr3kC+inwbxuLeUZPbstyFDeQmO9WCzbl6Hp6sCK+3
+ 9z+KC+rTs02om2qjIxYAUdOMGZpnbqDNF4QBf+Fsg9VG8ep519xqhFkKBmM/E9Hoqvn7
+ 0La+m5e6FK1wbZ8XIaLd/boo5YBbIlQ2mwTJcDpuewbuba40vHqCEkw13sXdBD5W3ru7
+ OcxQKR4THDaqsO3RLE7PM/INIcLAvD7czRc+Px7R3XqyCpoNznlXOF+ok9ku1z0CZb+u
+ sGG5yjMWtuQF42Fwe9H5s1Xcchzdr1HYwbDmkAjFusa7xbSBsuntMRzhE5q3TLn/fR8A
+ qjcMP/0OWgkUB789CPbt8MqLKfkTwSL/A0J3CIp8wWHwJz7+D17+dsh3DKok65diBiMI
+ bCczCE0DGmd+/oXMz20zDfsk8htYN/Igbl/vMWDnKuJ90ijS4mtgMupgmMy2SQ4///nz
+ Xw==
+
+ adjustmentEditorBundleID
+ com.apple.Photos
+ adjustmentFormatIdentifier
+ com.apple.photo
+ adjustmentFormatVersion
+ 1.5
+ adjustmentTimestamp
+ 2020-10-31T15:03:21Z
+
+
diff --git a/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_201_a.jpeg b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_201_a.jpeg
new file mode 100644
index 00000000..f3752fb2
Binary files /dev/null and b/tests/Test-Places-Catalina-10_15_7.photoslibrary/resources/renders/A/A9B73E13-A6F2-4915-8D67-7213B39BAE9F_1_201_a.jpeg differ
diff --git a/tests/test_cli.py b/tests/test_cli.py
index 176b9445..1105ff7a 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -670,8 +670,7 @@ def test_query_has_likes():
runner = CliRunner()
cwd = os.getcwd()
result = runner.invoke(
- query,
- ["--json", "--db", os.path.join(cwd, COMMENTS_PHOTOS_DB), "--has-likes"],
+ query, ["--json", "--db", os.path.join(cwd, COMMENTS_PHOTOS_DB), "--has-likes"]
)
assert result.exit_code == 0
@@ -2642,8 +2641,7 @@ def test_export_sidecar_keyword_template():
"XMP:PersonInImage": ["Katie"],
"XMP:Subject": ["Kids", "Katie"],
"EXIF:DateTimeOriginal": "2018:09:28 16:07:07",
- "EXIF:OffsetTimeOriginal": "-04:00",
- "EXIF:ModifyDate": "2020:04:11 12:34:16"}]"""
+ "EXIF:OffsetTimeOriginal": "-04:00"}]"""
)[0]
with open("Pumkins2.jpg.json", "r") as json_file:
diff --git a/tests/test_export_catalina_10_15_1.py b/tests/test_export_catalina_10_15_7.py
similarity index 80%
rename from tests/test_export_catalina_10_15_1.py
rename to tests/test_export_catalina_10_15_7.py
index 5e2b5f50..90dc3243 100644
--- a/tests/test_export_catalina_10_15_1.py
+++ b/tests/test_export_catalina_10_15_7.py
@@ -10,7 +10,7 @@ try:
except:
exiftool = None
-PHOTOS_DB = "./tests/Test-10.15.1.photoslibrary/database/photos.db"
+PHOTOS_DB = "./tests/Test-10.15.7.photoslibrary/database/photos.db"
KEYWORDS = [
"Kids",
@@ -53,7 +53,7 @@ UUID_DICT = {
"hidden": "A1DD1F98-2ECD-431F-9AC9-5AFEFE2D3A5C",
"not_hidden": "E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51",
"has_adjustments": "E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51",
- "no_adjustments": "6191423D-8DB8-4D4C-92BE-9BBBA308AAC4",
+ "no_adjustments": "D79B8D77-BFFC-460B-9312-034F2877D35B",
"location": "DC99FBDD-7A52-4100-A5BB-344131646C30",
"no_location": "6191423D-8DB8-4D4C-92BE-9BBBA308AAC4",
"external_edit": "DC99FBDD-7A52-4100-A5BB-344131646C30",
@@ -66,16 +66,18 @@ UUID_DICT = {
XMP_FILENAME = "Pumkins1.jpg.xmp"
XMP_JPG_FILENAME = "Pumkins1.jpg"
+EXIF_JSON_UUID = UUID_DICT["has_adjustments"]
EXIF_JSON_EXPECTED = (
'[{"_CreatedBy": "osxphotos, https://github.com/RhetTbull/osxphotos", '
- '"XMP:Title": "St. James\'s Park", "XMP:TagsList": ["UK", "England", '
- '"London", "United Kingdom", "London 2018", "St. James\'s Park"], '
- '"IPTC:Keywords": ["UK", "England", "London", "United Kingdom", "London 2018", '
- '"St. James\'s Park"], "XMP:Subject": ["UK", "England", "London", "United Kingdom", '
- '"London 2018", "St. James\'s Park"], "EXIF:GPSLatitude": 51.50357167, '
- '"EXIF:GPSLongitude": -0.1318055, "EXIF:GPSLatitudeRef": "N", '
- '"EXIF:GPSLongitudeRef": "W", "EXIF:DateTimeOriginal": "2018:10:13 09:18:12", '
- '"EXIF:OffsetTimeOriginal": "-04:00", "EXIF:ModifyDate": "2019:12:08 14:06:44"}]'
+ '"EXIF:ImageDescription": "Bride Wedding day", '
+ '"XMP:Description": "Bride Wedding day", '
+ '"XMP:TagsList": ["wedding"], '
+ '"IPTC:Keywords": ["wedding"], '
+ '"XMP:PersonInImage": ["Maria"], '
+ '"XMP:Subject": ["wedding", "Maria"], '
+ '"EXIF:DateTimeOriginal": "2019:04:15 14:40:24", '
+ '"EXIF:OffsetTimeOriginal": "-04:00", '
+ '"EXIF:ModifyDate": "2019:07:27 17:33:28"}]'
)
@@ -466,7 +468,7 @@ def test_exiftool_json_sidecar():
import json
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
- photos = photosdb.photos(uuid=[UUID_DICT["location"]])
+ photos = photosdb.photos(uuid=[EXIF_JSON_UUID])
json_expected = json.loads(EXIF_JSON_EXPECTED)[0]
@@ -487,6 +489,112 @@ def test_exiftool_json_sidecar():
assert json_got[k] == v
+def test_exiftool_json_sidecar_keyword_template_long(caplog):
+ import osxphotos
+ from osxphotos._constants import _MAX_IPTC_KEYWORD_LEN
+ import json
+
+ photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
+ photos = photosdb.photos(uuid=[EXIF_JSON_UUID])
+
+ json_expected = json.loads(
+ """
+ [{"_CreatedBy": "osxphotos, https://github.com/RhetTbull/osxphotos",
+ "EXIF:ImageDescription": "Bride Wedding day",
+ "XMP:Description": "Bride Wedding day",
+ "XMP:TagsList": ["wedding", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
+ "IPTC:Keywords": ["wedding", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
+ "XMP:PersonInImage": ["Maria"],
+ "XMP:Subject": ["wedding", "Maria"],
+ "EXIF:DateTimeOriginal": "2019:04:15 14:40:24",
+ "EXIF:OffsetTimeOriginal": "-04:00",
+ "EXIF:ModifyDate": "2019:07:27 17:33:28"}]
+ """
+ )[0]
+
+ long_str = "x" * (_MAX_IPTC_KEYWORD_LEN + 1)
+ json_got = photos[0]._exiftool_json_sidecar(keyword_template=[long_str])
+ json_got = json.loads(json_got)[0]
+
+ assert "Some keywords exceed max IPTC Keyword length" in caplog.text
+ # some gymnastics to account for different sort order in different pythons
+ for k, v in json_got.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_expected[k]) == sorted(v)
+ else:
+ assert json_expected[k] == v
+
+ for k, v in json_expected.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_got[k]) == sorted(v)
+ else:
+ assert json_got[k] == v
+
+ for k, v in json_expected.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_got[k]) == sorted(v)
+ else:
+ assert json_got[k] == v
+
+
+def test_exiftool_json_sidecar_keyword_template():
+ import osxphotos
+ import json
+
+ photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
+ photos = photosdb.photos(uuid=[EXIF_JSON_UUID])
+
+ json_expected = json.loads(
+ """
+ [{"_CreatedBy": "osxphotos, https://github.com/RhetTbull/osxphotos",
+ "EXIF:ImageDescription": "Bride Wedding day",
+ "XMP:Description": "Bride Wedding day",
+ "XMP:TagsList": ["wedding", "Folder1/SubFolder2/AlbumInFolder", "I have a deleted twin"],
+ "IPTC:Keywords": ["wedding", "Folder1/SubFolder2/AlbumInFolder", "I have a deleted twin"],
+ "XMP:PersonInImage": ["Maria"],
+ "XMP:Subject": ["wedding", "Maria"],
+ "EXIF:DateTimeOriginal": "2019:04:15 14:40:24",
+ "EXIF:OffsetTimeOriginal": "-04:00",
+ "EXIF:ModifyDate": "2019:07:27 17:33:28"}]
+ """
+ )[0]
+
+ json_got = photos[0]._exiftool_json_sidecar(keyword_template=["{folder_album}"])
+ json_got = json.loads(json_got)[0]
+
+ # some gymnastics to account for different sort order in different pythons
+ for k, v in json_got.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_expected[k]) == sorted(v)
+ else:
+ assert json_expected[k] == v
+
+ for k, v in json_expected.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_got[k]) == sorted(v)
+ else:
+ assert json_got[k] == v
+
+ # some gymnastics to account for different sort order in different pythons
+ for k, v in json_got.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_expected[k]) == sorted(v)
+ else:
+ assert json_expected[k] == v
+
+ for k, v in json_expected.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_got[k]) == sorted(v)
+ else:
+ assert json_got[k] == v
+
+ for k, v in json_expected.items():
+ if type(v) in (list, tuple):
+ assert sorted(json_got[k]) == sorted(v)
+ else:
+ assert json_got[k] == v
+
+
def test_exiftool_json_sidecar_use_persons_keyword():
import osxphotos
import json
@@ -505,8 +613,7 @@ def test_exiftool_json_sidecar_use_persons_keyword():
"XMP:PersonInImage": ["Suzy", "Katie"],
"XMP:Subject": ["Kids", "Suzy", "Katie"],
"EXIF:DateTimeOriginal": "2018:09:28 15:35:49",
- "EXIF:OffsetTimeOriginal": "-04:00",
- "EXIF:ModifyDate": "2019:11:24 13:09:17"}]
+ "EXIF:OffsetTimeOriginal": "-04:00"}]
"""
)[0]
@@ -545,8 +652,7 @@ def test_exiftool_json_sidecar_use_albums_keyword():
"XMP:PersonInImage": ["Suzy", "Katie"],
"XMP:Subject": ["Kids", "Suzy", "Katie"],
"EXIF:DateTimeOriginal": "2018:09:28 15:35:49",
- "EXIF:OffsetTimeOriginal": "-04:00",
- "EXIF:ModifyDate": "2019:11:24 13:09:17"}]
+ "EXIF:OffsetTimeOriginal": "-04:00"}]
"""
)[0]
@@ -918,3 +1024,73 @@ def test_xmp_sidecar_gps():
sorted(xmp_expected_lines), sorted(xmp_got_lines)
):
assert line_expected == line_got
+
+
+def test_xmp_sidecar_keyword_template():
+ import osxphotos
+
+ photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
+ photos = photosdb.photos(uuid=[UUID_DICT["xmp"]])
+
+ xmp_expected = """
+
+
+
+
+ jpg
+ Girls with pumpkins
+ Can we carry this?
+
+
+
+ Kids
+ Suzy
+ Katie
+
+
+ 2018-09-28T15:35:49.063000-04:00
+
+
+
+
+ Suzy
+ Katie
+
+
+
+
+
+
+ Kids
+ Pumpkin Farm
+ Test Album
+ 2018
+
+
+
+
+ 2018-09-28T15:35:49
+ 2018-09-28T15:35:49
+
+
+
+
+ """
+
+ xmp_expected_lines = [line.strip() for line in xmp_expected.split("\n")]
+
+ xmp_got = photos[0]._xmp_sidecar(
+ keyword_template=["{created.year}", "{folder_album}"], extension="jpg"
+ )
+ xmp_got_lines = [line.strip() for line in xmp_got.split("\n")]
+
+ for line_expected, line_got in zip(
+ sorted(xmp_expected_lines), sorted(xmp_got_lines)
+ ):
+ assert line_expected == line_got
diff --git a/tests/test_export_keyword_template_catalina_10_15_4.py b/tests/test_export_keyword_template_catalina_10_15_4.py
deleted file mode 100644
index bff667b7..00000000
--- a/tests/test_export_keyword_template_catalina_10_15_4.py
+++ /dev/null
@@ -1,223 +0,0 @@
-import pytest
-
-from osxphotos._constants import _UNKNOWN_PERSON
-
-PHOTOS_DB = "./tests/Test-10.15.4.photoslibrary/database/photos.db"
-
-TOP_LEVEL_FOLDERS = ["Folder1"]
-
-TOP_LEVEL_CHILDREN = ["SubFolder1", "SubFolder2"]
-
-FOLDER_ALBUM_DICT = {"Folder1": [], "SubFolder1": [], "SubFolder2": ["AlbumInFolder"]}
-
-ALBUM_NAMES = ["Pumpkin Farm", "AlbumInFolder", "Test Album", "Test Album"]
-
-ALBUM_PARENT_DICT = {
- "Pumpkin Farm": None,
- "AlbumInFolder": "SubFolder2",
- "Test Album": None,
-}
-
-ALBUM_FOLDER_NAMES_DICT = {
- "Pumpkin Farm": [],
- "AlbumInFolder": ["Folder1", "SubFolder2"],
- "Test Album": [],
-}
-
-ALBUM_LEN_DICT = {"Pumpkin Farm": 3, "AlbumInFolder": 2, "Test Album": 1}
-
-ALBUM_PHOTO_UUID_DICT = {
- "Pumpkin Farm": [
- "F12384F6-CD17-4151-ACBA-AE0E3688539E",
- "D79B8D77-BFFC-460B-9312-034F2877D35B",
- "1EB2B765-0765-43BA-A90C-0D0580E6172C",
- ],
- "Test Album": [
- "F12384F6-CD17-4151-ACBA-AE0E3688539E",
- "D79B8D77-BFFC-460B-9312-034F2877D35B",
- ],
- "AlbumInFolder": [
- "3DD2C897-F19E-4CA6-8C22-B027D5A71907",
- "E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51",
- ],
-}
-
-UUID_DICT = {
- "two_albums": "F12384F6-CD17-4151-ACBA-AE0E3688539E",
- "in_album": "E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51",
- "xmp": "F12384F6-CD17-4151-ACBA-AE0E3688539E",
-}
-
-
-def test_exiftool_json_sidecar_keyword_template_long(caplog):
- import osxphotos
- from osxphotos._constants import _MAX_IPTC_KEYWORD_LEN
- import json
-
- photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
- photos = photosdb.photos(uuid=[UUID_DICT["in_album"]])
-
- json_expected = json.loads(
- """
- [{"_CreatedBy": "osxphotos, https://github.com/RhetTbull/osxphotos",
- "EXIF:ImageDescription": "Bride Wedding day",
- "XMP:Description": "Bride Wedding day",
- "XMP:TagsList": ["wedding", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
- "IPTC:Keywords": ["wedding", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
- "XMP:PersonInImage": ["Maria"],
- "XMP:Subject": ["wedding", "Maria"],
- "EXIF:DateTimeOriginal": "2019:04:15 14:40:24",
- "EXIF:OffsetTimeOriginal": "-04:00", "EXIF:ModifyDate": "2019:11:24 13:09:17"}]
- """
- )[0]
-
- long_str = "x" * (_MAX_IPTC_KEYWORD_LEN + 1)
- json_got = photos[0]._exiftool_json_sidecar(keyword_template=[long_str])
- json_got = json.loads(json_got)[0]
-
- assert "Some keywords exceed max IPTC Keyword length" in caplog.text
- # some gymnastics to account for different sort order in different pythons
- for k, v in json_got.items():
- if type(v) in (list, tuple):
- assert sorted(json_expected[k]) == sorted(v)
- else:
- assert json_expected[k] == v
-
- for k, v in json_expected.items():
- if type(v) in (list, tuple):
- assert sorted(json_got[k]) == sorted(v)
- else:
- assert json_got[k] == v
-
- for k, v in json_expected.items():
- if type(v) in (list, tuple):
- assert sorted(json_got[k]) == sorted(v)
- else:
- assert json_got[k] == v
-
-
-def test_exiftool_json_sidecar_keyword_template():
- import osxphotos
- import json
-
- photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
- photos = photosdb.photos(uuid=[UUID_DICT["in_album"]])
-
- json_expected = json.loads(
- """
- [{"_CreatedBy": "osxphotos, https://github.com/RhetTbull/osxphotos",
- "EXIF:ImageDescription": "Bride Wedding day",
- "XMP:Description": "Bride Wedding day",
- "XMP:TagsList": ["wedding", "Folder1/SubFolder2/AlbumInFolder"],
- "IPTC:Keywords": ["wedding", "Folder1/SubFolder2/AlbumInFolder"],
- "XMP:PersonInImage": ["Maria"],
- "XMP:Subject": ["wedding", "Maria"],
- "EXIF:DateTimeOriginal": "2019:04:15 14:40:24",
- "EXIF:OffsetTimeOriginal": "-04:00", "EXIF:ModifyDate": "2019:11:24 13:09:17"}]
- """
- )[0]
-
- json_got = photos[0]._exiftool_json_sidecar(keyword_template=["{folder_album}"])
- json_got = json.loads(json_got)[0]
-
- # some gymnastics to account for different sort order in different pythons
- for k, v in json_got.items():
- if type(v) in (list, tuple):
- assert sorted(json_expected[k]) == sorted(v)
- else:
- assert json_expected[k] == v
-
- for k, v in json_expected.items():
- if type(v) in (list, tuple):
- assert sorted(json_got[k]) == sorted(v)
- else:
- assert json_got[k] == v
-
- # some gymnastics to account for different sort order in different pythons
- for k, v in json_got.items():
- if type(v) in (list, tuple):
- assert sorted(json_expected[k]) == sorted(v)
- else:
- assert json_expected[k] == v
-
- for k, v in json_expected.items():
- if type(v) in (list, tuple):
- assert sorted(json_got[k]) == sorted(v)
- else:
- assert json_got[k] == v
-
- for k, v in json_expected.items():
- if type(v) in (list, tuple):
- assert sorted(json_got[k]) == sorted(v)
- else:
- assert json_got[k] == v
-
-
-def test_xmp_sidecar_keyword_template():
- import osxphotos
-
- photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
- photos = photosdb.photos(uuid=[UUID_DICT["xmp"]])
-
- xmp_expected = """
-
-
-
-
- jpg
- Girls with pumpkins
- Can we carry this?
-
-
-
- Kids
- Suzy
- Katie
-
-
- 2018-09-28T15:35:49.063000-04:00
-
-
-
-
- Suzy
- Katie
-
-
-
-
-
-
- Kids
- Pumpkin Farm
- Test Album
- 2018
-
-
-
-
- 2018-09-28T15:35:49
- 2018-09-28T15:35:49
-
-
-
-
- """
-
- xmp_expected_lines = [line.strip() for line in xmp_expected.split("\n")]
-
- xmp_got = photos[0]._xmp_sidecar(
- keyword_template=["{created.year}", "{folder_album}"], extension="jpg"
- )
- xmp_got_lines = [line.strip() for line in xmp_got.split("\n")]
-
- for line_expected, line_got in zip(
- sorted(xmp_expected_lines), sorted(xmp_got_lines)
- ):
- assert line_expected == line_got
diff --git a/tests/test_modified_date_catalina_10_15_1.py b/tests/test_modified_date_catalina_10_15_7.py
similarity index 52%
rename from tests/test_modified_date_catalina_10_15_1.py
rename to tests/test_modified_date_catalina_10_15_7.py
index 5544e581..bc6d1bb1 100644
--- a/tests/test_modified_date_catalina_10_15_1.py
+++ b/tests/test_modified_date_catalina_10_15_7.py
@@ -1,12 +1,10 @@
import pytest
-PHOTOS_DB = "./tests/Test-Shared-10.15.1.photoslibrary/database/photos.db"
-PHOTOS_DB_PATH = "/Test-Shared-10.15.1.photoslibrary/database/photos.db"
-PHOTOS_LIBRARY_PATH = "/Test-Shared-10.15.1.photoslibrary"
+PHOTOS_DB = "./tests/Test-10.15.7.photoslibrary/database/photos.db"
UUID_DICT = {
- "modified": "37210110-E940-4227-92D3-45C40F68EB0A",
- "not_modified": "35243F7D-88C4-4408-B516-C74406E90C15",
+ "modified": "E9BC5C36-7CD1-40A1-A72B-8B8FAC227D51",
+ "not_modified": "D05A5FE3-15FB-49A1-A15D-AB3DA6F8B068",
}
@@ -17,7 +15,16 @@ def test_modified():
photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB)
photos = photosdb.photos(uuid=[UUID_DICT["modified"]])
assert photos[0].date_modified is not None
- assert photos[0].date_modified.isoformat() == "2019-12-26T21:08:48.306538-07:00"
+ assert photos[0].date_modified == datetime.datetime(
+ 2019,
+ 7,
+ 27,
+ 17,
+ 33,
+ 28,
+ 398138,
+ tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000)),
+ )
def test_not_modified():
diff --git a/tests/test_template.py b/tests/test_template.py
index 120d5296..ae294f8b 100644
--- a/tests/test_template.py
+++ b/tests/test_template.py
@@ -2,7 +2,7 @@
import pytest
PHOTOS_DB_PLACES = (
- "./tests/Test-Places-Catalina-10_15_1.photoslibrary/database/photos.db"
+ "./tests/Test-Places-Catalina-10_15_7.photoslibrary/database/photos.db"
)
PHOTOS_DB_15_1 = "./tests/Test-10.15.1.photoslibrary/database/photos.db"
PHOTOS_DB_15_4 = "./tests/Test-10.15.4.photoslibrary/database/photos.db"
@@ -18,6 +18,8 @@ UUID_DICT = {
"folder_album_1": "3DD2C897-F19E-4CA6-8C22-B027D5A71907",
"folder_album_no_folder": "D79B8D77-BFFC-460B-9312-034F2877D35B",
"mojave_album_1": "15uNd7%8RguTEgNPKHfTWw",
+ "date_modified": "A9B73E13-A6F2-4915-8D67-7213B39BAE9F",
+ "date_not_modified": "128FB4C6-0B16-4E7D-9108-FB2E90DA1546",
}
TEMPLATE_VALUES = {
@@ -37,17 +39,6 @@ TEMPLATE_VALUES = {
"{created.hour}": "19",
"{created.min}": "07",
"{created.sec}": "38",
- "{modified.date}": "2020-03-21",
- "{modified.year}": "2020",
- "{modified.yy}": "20",
- "{modified.mm}": "03",
- "{modified.month}": "March",
- "{modified.mon}": "Mar",
- "{modified.dd}": "21",
- "{modified.doy}": "081",
- "{modified.hour}": "01",
- "{modified.min}": "33",
- "{modified.sec}": "08",
"{place.name}": "Washington, District of Columbia, United States",
"{place.country_code}": "US",
"{place.name.country}": "United States",
@@ -78,14 +69,6 @@ TEMPLATE_VALUES_DEU = {
"{created.dd}": "04",
"{created.doy}": "035",
"{created.dow}": "Dienstag",
- "{modified.date}": "2020-03-21",
- "{modified.year}": "2020",
- "{modified.yy}": "20",
- "{modified.mm}": "03",
- "{modified.month}": "März",
- "{modified.mon}": "Mär",
- "{modified.dd}": "21",
- "{modified.doy}": "081",
"{place.name}": "Washington, District of Columbia, United States",
"{place.country_code}": "US",
"{place.name.country}": "United States",
@@ -101,6 +84,35 @@ TEMPLATE_VALUES_DEU = {
"{place.address.country_code}": "US",
}
+TEMPLATE_VALUES_DATE_MODIFIED = {
+ "{name}": "A9B73E13-A6F2-4915-8D67-7213B39BAE9F",
+ "{original_name}": "IMG_3984",
+ "{modified.date}": "2020-10-31",
+ "{modified.year}": "2020",
+ "{modified.yy}": "20",
+ "{modified.mm}": "10",
+ "{modified.month}": "October",
+ "{modified.mon}": "Oct",
+ "{modified.dd}": "31",
+ "{modified.doy}": "305",
+ "{modified.dow}": "Saturday",
+}
+
+TEMPLATE_VALUES_DATE_NOT_MODIFIED = {
+ "{name}": "128FB4C6-0B16-4E7D-9108-FB2E90DA1546",
+ "{original_name}": "IMG_1064",
+ "{modified.date}": "_",
+ "{modified.year}": "_",
+ "{modified.yy}": "_",
+ "{modified.mm}": "_",
+ "{modified.month}": "_",
+ "{modified.mon}": "_",
+ "{modified.dd}": "_",
+ "{modified.doy}": "_",
+ "{modified.dow}": "_",
+}
+
+
COMMENT_UUID_DICT = {
"4AD7C8EF-2991-4519-9D3A-7F44A6F031BE": [
"None: Nice photo!",
@@ -162,6 +174,34 @@ def test_subst():
assert rendered[0] == TEMPLATE_VALUES[template]
+def test_subst_date_modified():
+ """ Test that substitutions are correct for date modified """
+ import locale
+ import osxphotos
+
+ locale.setlocale(locale.LC_ALL, "en_US")
+ photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB_PLACES)
+ photo = photosdb.photos(uuid=[UUID_DICT["date_modified"]])[0]
+
+ for template in TEMPLATE_VALUES_DATE_MODIFIED:
+ rendered, _ = photo.render_template(template)
+ assert rendered[0] == TEMPLATE_VALUES_DATE_MODIFIED[template]
+
+
+def test_subst_date_not_modified():
+ """ Test that substitutions are correct for date modified when photo isn't modified """
+ import locale
+ import osxphotos
+
+ locale.setlocale(locale.LC_ALL, "en_US")
+ photosdb = osxphotos.PhotosDB(dbfile=PHOTOS_DB_PLACES)
+ photo = photosdb.photos(uuid=[UUID_DICT["date_not_modified"]])[0]
+
+ for template in TEMPLATE_VALUES_DATE_NOT_MODIFIED:
+ rendered, _ = photo.render_template(template)
+ assert rendered[0] == TEMPLATE_VALUES_DATE_NOT_MODIFIED[template]
+
+
def test_subst_locale_1():
""" Test that substitutions are correct in user locale"""
import locale