diff --git a/osxphotos/__main__.py b/osxphotos/__main__.py index dd8025d7..44d7e7fd 100644 --- a/osxphotos/__main__.py +++ b/osxphotos/__main__.py @@ -762,7 +762,10 @@ def export( if only_photos: ismovie = False - db = get_photos_db(*photos_library, db, cli_obj.db) + + # below needed for to make CliRunner work for testing + cli_db = cli_obj.db if cli_obj is not None else None + db = get_photos_db(*photos_library, db, cli_db) if db is None: click.echo(cli.commands["export"].get_help(ctx), err=True) click.echo("\n\nLocated the following Photos library databases: ", err=True) diff --git a/tests/test_cli.py b/tests/test_cli.py index 9fb0cb74..c3e21ea7 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -24,6 +24,17 @@ CLI_OUTPUT_NO_SUBCOMMAND = [ CLI_OUTPUT_QUERY_UUID = '[{"uuid": "D79B8D77-BFFC-460B-9312-034F2877D35B", "filename": "D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg", "original_filename": "Pumkins2.jpg", "date": "2018-09-28T16:07:07-04:00", "description": "Girl holding pumpkin", "title": "I found one!", "keywords": ["Kids"], "albums": ["Pumpkin Farm", "Test Album"], "persons": ["Katie"], "path": "/tests/Test-10.15.1.photoslibrary/originals/D/D79B8D77-BFFC-460B-9312-034F2877D35B.jpeg", "ismissing": false, "hasadjustments": false, "external_edit": false, "favorite": false, "hidden": false, "latitude": null, "longitude": null, "path_edited": null, "shared": false, "isphoto": true, "ismovie": false, "uti": "public.jpeg", "burst": false, "live_photo": false, "path_live_photo": null, "iscloudasset": false, "incloud": null}]' +CLI_EXPORT_FILENAMES = [ + "Pumkins1.jpg", + "Pumkins2.jpg", + "Pumpkins3.jpg", + "St James Park.jpg", + "St James Park_edited.jpg", + "Tulips.jpg", + "wedding.jpg", + "wedding_edited.jpg", +] + def test_osxphotos(): import osxphotos @@ -68,3 +79,27 @@ def test_query_uuid(): assert json_expected[key_] == json_got[key_] else: assert json_expected[key_] in json_got[key_] + + +def test_export(): + import glob + import os + import os.path + import osxphotos + from osxphotos.__main__ import export + + runner = CliRunner() + cwd = os.getcwd() + with runner.isolated_filesystem(): + result = runner.invoke( + export, + [ + os.path.join(cwd, "tests/Test-10.15.1.photoslibrary"), + ".", + "--original-name", + "--export-edited", + "-V", + ], + ) + files = glob.glob("*.jpg") + assert files.sort() == CLI_EXPORT_FILENAMES.sort()