Fix for #853, deleted files not in exportdb --report (#877)

This commit is contained in:
Rhet Turnbull 2022-12-19 08:02:29 -08:00 committed by GitHub
parent 0472582870
commit 1b89f85a41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 3 deletions

View File

@ -1725,9 +1725,6 @@ def export(
progress.advance(task, num_photos - photo_num)
break
# store results so they can be used by `osxphotos exportdb --report`
export_db.set_export_results(results)
photo_str_total = pluralize(len(photos), "photo", "photos")
if update or force_update:
summary = (
@ -1802,6 +1799,9 @@ def export(
results.deleted_files = cleaned_files
results.deleted_directories = cleaned_dirs
# store results so they can be used by `osxphotos exportdb --report`
export_db.set_export_results(results)
if report:
verbose_(f"Wrote export report to [filepath]{report}")
report_writer.close()

View File

@ -27,6 +27,7 @@ from osxphotos.cli import (
albums,
cli_main,
export,
exportdb,
keywords,
labels,
persons,
@ -6351,6 +6352,45 @@ def test_export_cleanup_keep_relative_path():
assert pathlib.Path("./report.db").is_file()
def test_export_cleanup_exportdb_report():
"""test export with --cleanup flag results show in exportdb --report"""
runner = CliRunner()
cwd = os.getcwd()
# pylint: disable=not-context-manager
with runner.isolated_filesystem():
result = runner.invoke(export, [os.path.join(cwd, CLI_PHOTOS_DB), ".", "-V"])
assert result.exit_code == 0
# create 2 files and a directory
with open("delete_me.txt", "w") as fd:
fd.write("delete me!")
os.mkdir("./foo")
with open("foo/delete_me_too.txt", "w") as fd:
fd.write("delete me too!")
assert pathlib.Path("./delete_me.txt").is_file()
results = runner.invoke(
export,
[os.path.join(cwd, CLI_PHOTOS_DB), ".", "-V", "--update", "--cleanup"],
)
assert "Deleted: 2 files, 1 directory" in results.output
assert not pathlib.Path("./delete_me.txt").is_file()
assert not pathlib.Path("./foo/delete_me_too.txt").is_file()
results = runner.invoke(
exportdb,
[".", "--report", "report.json", "0"],
)
assert results.exit_code == 0
with open("report.json", "r") as fd:
report = json.load(fd)
deleted_dirs = [x for x in report if x["cleanup_deleted_directory"]]
deleted_files = [x for x in report if x["cleanup_deleted_file"]]
assert len(deleted_dirs) == 1
assert len(deleted_files) == 2
def test_save_load_config():
"""test --save-config, --load-config"""