Refactor update osxmetadata (#804)
* Updated osxmetadata to use v1.0.0 * Added README_DEV * fix for missing detected_text xattr * fix for missing detected_text xattr
This commit is contained in:
@@ -6514,7 +6514,7 @@ def test_export_finder_tag_keywords():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["IPTC:Keywords"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
# run again with --update, should skip writing extended attributes
|
||||
@@ -6536,7 +6536,7 @@ def test_export_finder_tag_keywords():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["IPTC:Keywords"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
# clear tags and run again, should update extended attributes
|
||||
@@ -6560,7 +6560,7 @@ def test_export_finder_tag_keywords():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["IPTC:Keywords"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
|
||||
@@ -6589,7 +6589,7 @@ def test_export_finder_tag_template():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
# run again with --update, should skip writing extended attributes
|
||||
@@ -6612,7 +6612,7 @@ def test_export_finder_tag_template():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
# clear tags and run again, should update extended attributes
|
||||
@@ -6637,7 +6637,7 @@ def test_export_finder_tag_template():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
keywords = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
expected = [Tag(x) for x in keywords]
|
||||
expected = [Tag(x, 0) for x in keywords]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
|
||||
@@ -6670,7 +6670,7 @@ def test_export_finder_tag_template_multiple():
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
persons = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
persons = [persons] if type(persons) != list else persons
|
||||
expected = [Tag(x) for x in set(keywords + persons)]
|
||||
expected = [Tag(x, 0) for x in set(keywords + persons)]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
|
||||
@@ -6702,7 +6702,7 @@ def test_export_finder_tag_template_keywords():
|
||||
keywords = [keywords] if type(keywords) != list else keywords
|
||||
persons = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
persons = [persons] if type(persons) != list else persons
|
||||
expected = [Tag(x) for x in set(keywords + persons)]
|
||||
expected = [Tag(x, 0) for x in set(keywords + persons)]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
|
||||
@@ -6731,17 +6731,23 @@ def test_export_finder_tag_template_multi_field():
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
title = CLI_FINDER_TAGS[uuid]["XMP:Title"] or ""
|
||||
descr = CLI_FINDER_TAGS[uuid]["XMP:Description"] or ""
|
||||
expected = [Tag(f"{title};{descr}")]
|
||||
expected = [Tag(f"{title};{descr}", 0)]
|
||||
assert sorted(md.tags) == sorted(expected)
|
||||
|
||||
|
||||
def test_export_xattr_template():
|
||||
"""test --xattr template"""
|
||||
|
||||
# Note: this test does not actually test that the metadata attributes get correctly
|
||||
# written by osxmetadata as osxmetadata doesn't work reliably when run by pytest
|
||||
# (but does appear to work correctly in practice)
|
||||
# Reference: https://github.com/RhetTbull/osxmetadata/issues/68
|
||||
|
||||
runner = CliRunner()
|
||||
cwd = os.getcwd()
|
||||
# pylint: disable=not-context-manager
|
||||
with runner.isolated_filesystem():
|
||||
test_dir = os.getcwd()
|
||||
for uuid in CLI_FINDER_TAGS:
|
||||
result = runner.invoke(
|
||||
export,
|
||||
@@ -6750,8 +6756,8 @@ def test_export_xattr_template():
|
||||
".",
|
||||
"-V",
|
||||
"--xattr-template",
|
||||
"keywords",
|
||||
"{person}",
|
||||
"copyright",
|
||||
"osxphotos 2022",
|
||||
"--xattr-template",
|
||||
"comment",
|
||||
"{title};{descr}",
|
||||
@@ -6760,14 +6766,8 @@ def test_export_xattr_template():
|
||||
],
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
expected = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
expected = [expected] if type(expected) != list else expected
|
||||
assert sorted(md.keywords) == sorted(expected)
|
||||
title = CLI_FINDER_TAGS[uuid]["XMP:Title"] or ""
|
||||
descr = CLI_FINDER_TAGS[uuid]["XMP:Description"] or ""
|
||||
assert md.comment == f"{title};{descr}"
|
||||
assert "Writing extended attribute copyright" in result.output
|
||||
assert "Writing extended attribute comment" in result.output
|
||||
|
||||
# run again with --update, should skip writing extended attributes
|
||||
result = runner.invoke(
|
||||
@@ -6777,8 +6777,8 @@ def test_export_xattr_template():
|
||||
".",
|
||||
"-V",
|
||||
"--xattr-template",
|
||||
"keywords",
|
||||
"{person}",
|
||||
"copyright",
|
||||
"osxphotos 2022",
|
||||
"--xattr-template",
|
||||
"comment",
|
||||
"{title};{descr}",
|
||||
@@ -6788,11 +6788,12 @@ def test_export_xattr_template():
|
||||
],
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert "Skipping extended attribute keywords" in result.output
|
||||
assert "Skipping extended attribute comment" in result.output
|
||||
|
||||
# clear tags and run again, should update extended attributes
|
||||
md.keywords = None
|
||||
md = OSXMetaData(
|
||||
os.path.join(test_dir, CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
)
|
||||
md.copyright = None
|
||||
md.comment = None
|
||||
|
||||
result = runner.invoke(
|
||||
@@ -6802,8 +6803,8 @@ def test_export_xattr_template():
|
||||
".",
|
||||
"-V",
|
||||
"--xattr-template",
|
||||
"keywords",
|
||||
"{person}",
|
||||
"copyright",
|
||||
"osxphotos 2022",
|
||||
"--xattr-template",
|
||||
"comment",
|
||||
"{title}",
|
||||
@@ -6813,14 +6814,6 @@ def test_export_xattr_template():
|
||||
],
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert "Writing extended attribute keyword" in result.output
|
||||
assert "Writing extended attribute comment" in result.output
|
||||
|
||||
md = OSXMetaData(CLI_FINDER_TAGS[uuid]["File:FileName"])
|
||||
expected = CLI_FINDER_TAGS[uuid]["XMP:PersonInImage"]
|
||||
expected = [expected] if type(expected) != list else expected
|
||||
assert sorted(md.keywords) == sorted(expected)
|
||||
assert md.comment == CLI_FINDER_TAGS[uuid]["XMP:Title"]
|
||||
|
||||
|
||||
def test_export_jpeg_ext():
|
||||
|
||||
Reference in New Issue
Block a user