@@ -1725,9 +1725,6 @@ def export(
|
|||||||
progress.advance(task, num_photos - photo_num)
|
progress.advance(task, num_photos - photo_num)
|
||||||
break
|
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")
|
photo_str_total = pluralize(len(photos), "photo", "photos")
|
||||||
if update or force_update:
|
if update or force_update:
|
||||||
summary = (
|
summary = (
|
||||||
@@ -1802,6 +1799,9 @@ def export(
|
|||||||
results.deleted_files = cleaned_files
|
results.deleted_files = cleaned_files
|
||||||
results.deleted_directories = cleaned_dirs
|
results.deleted_directories = cleaned_dirs
|
||||||
|
|
||||||
|
# store results so they can be used by `osxphotos exportdb --report`
|
||||||
|
export_db.set_export_results(results)
|
||||||
|
|
||||||
if report:
|
if report:
|
||||||
verbose_(f"Wrote export report to [filepath]{report}")
|
verbose_(f"Wrote export report to [filepath]{report}")
|
||||||
report_writer.close()
|
report_writer.close()
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ from osxphotos.cli import (
|
|||||||
albums,
|
albums,
|
||||||
cli_main,
|
cli_main,
|
||||||
export,
|
export,
|
||||||
|
exportdb,
|
||||||
keywords,
|
keywords,
|
||||||
labels,
|
labels,
|
||||||
persons,
|
persons,
|
||||||
@@ -6351,6 +6352,45 @@ def test_export_cleanup_keep_relative_path():
|
|||||||
assert pathlib.Path("./report.db").is_file()
|
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():
|
def test_save_load_config():
|
||||||
"""test --save-config, --load-config"""
|
"""test --save-config, --load-config"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user