Fix for #872, duplicate results with --exif (and --name) (#876)

This commit is contained in:
Rhet Turnbull 2022-12-19 07:39:24 -08:00 committed by GitHub
parent 830da7b3b4
commit 0472582870
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 2 deletions

View File

@ -3391,7 +3391,7 @@ class PhotosDB:
if n in p.filename or n in p.original_filename
]
)
photos = photo_list
photos = list(set(photo_list))
if options.min_size:
photos = [
@ -3498,7 +3498,7 @@ class PhotosDB:
exifdata_value = str(exifdata_value)
if exifvalue in exifdata_value:
matching_photos.append(p)
photos = matching_photos
photos = list(set(matching_photos))
if options.added_after:
added_after = options.added_after

View File

@ -993,6 +993,9 @@ FILE_FAVORITE = "wedding.jpg"
UUID_NOT_FAVORITE = "1EB2B765-0765-43BA-A90C-0D0580E6172C"
FILE_NOT_FAVORITE = "Pumpkins3.jpg"
# number of photos in test library with Make=Canon
EXIF_MAKE_CANON = 7
def modify_file(filename):
"""appends data to a file to modify it"""
@ -1385,6 +1388,33 @@ def test_query_exif_case_insensitive(exiftag, exifvalue, uuid_expected):
assert sorted(uuid_got) == sorted(uuid_expected)
@pytest.mark.skipif(exiftool is None, reason="exiftool not installed")
def test_query_exif_multiple():
"""Test query with multiple --exif options, #873"""
runner = CliRunner()
cwd = os.getcwd()
result = runner.invoke(
query,
[
"--json",
"--db",
os.path.join(cwd, CLI_PHOTOS_DB),
"--exif",
"Make",
"Canon",
"--exif",
"Model",
"Canon PowerShot G10",
],
)
assert result.exit_code == 0
# build list of uuids we got from the output JSON
json_got = json.loads(result.output)
assert len(json_got) == EXIF_MAKE_CANON
def test_export():
"""test basic export"""
runner = CliRunner()