* Add exit codes to update and import command * Add tests for _import and _update exit codes
This commit is contained in:
parent
2e0a59b7d8
commit
18b5c1336e
14
elodie.py
14
elodie.py
|
@ -87,6 +87,7 @@ def import_file(_file, destination, album_from_folder, trash, allow_duplicates):
|
||||||
def _import(destination, source, file, album_from_folder, trash, paths, allow_duplicates):
|
def _import(destination, source, file, album_from_folder, trash, paths, allow_duplicates):
|
||||||
"""Import files or directories by reading their EXIF and organizing them accordingly.
|
"""Import files or directories by reading their EXIF and organizing them accordingly.
|
||||||
"""
|
"""
|
||||||
|
has_errors = False
|
||||||
result = Result()
|
result = Result()
|
||||||
|
|
||||||
destination = _decode(destination)
|
destination = _decode(destination)
|
||||||
|
@ -110,9 +111,13 @@ def _import(destination, source, file, album_from_folder, trash, paths, allow_du
|
||||||
dest_path = import_file(current_file, destination, album_from_folder,
|
dest_path = import_file(current_file, destination, album_from_folder,
|
||||||
trash, allow_duplicates)
|
trash, allow_duplicates)
|
||||||
result.append((current_file, dest_path))
|
result.append((current_file, dest_path))
|
||||||
|
has_errors = has_errors is True or not dest_path
|
||||||
|
|
||||||
result.write()
|
result.write()
|
||||||
|
|
||||||
|
if has_errors:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
@click.command('generate-db')
|
@click.command('generate-db')
|
||||||
@click.option('--source', type=click.Path(file_okay=False),
|
@click.option('--source', type=click.Path(file_okay=False),
|
||||||
|
@ -209,6 +214,7 @@ def update_time(media, file_path, time_string):
|
||||||
def _update(album, location, time, title, paths):
|
def _update(album, location, time, title, paths):
|
||||||
"""Update a file's EXIF. Automatically modifies the file's location and file name accordingly.
|
"""Update a file's EXIF. Automatically modifies the file's location and file name accordingly.
|
||||||
"""
|
"""
|
||||||
|
has_errors = False
|
||||||
result = Result()
|
result = Result()
|
||||||
|
|
||||||
files = set()
|
files = set()
|
||||||
|
@ -221,6 +227,8 @@ def _update(album, location, time, title, paths):
|
||||||
|
|
||||||
for current_file in files:
|
for current_file in files:
|
||||||
if not os.path.exists(current_file):
|
if not os.path.exists(current_file):
|
||||||
|
has_errors = True
|
||||||
|
result.append((current_file, False))
|
||||||
if constants.debug:
|
if constants.debug:
|
||||||
print('Could not find %s' % current_file)
|
print('Could not find %s' % current_file)
|
||||||
print('{"source":"%s", "error_msg":"Could not find %s"}' % \
|
print('{"source":"%s", "error_msg":"Could not find %s"}' % \
|
||||||
|
@ -289,10 +297,16 @@ def _update(album, location, time, title, paths):
|
||||||
FILESYSTEM.delete_directory_if_empty(
|
FILESYSTEM.delete_directory_if_empty(
|
||||||
os.path.dirname(os.path.dirname(current_file)))
|
os.path.dirname(os.path.dirname(current_file)))
|
||||||
result.append((current_file, dest_path))
|
result.append((current_file, dest_path))
|
||||||
|
# Trip has_errors to False if it's already False or dest_path is.
|
||||||
|
has_errors = has_errors is True or not dest_path
|
||||||
else:
|
else:
|
||||||
|
has_errors = False
|
||||||
result.append((current_file, False))
|
result.append((current_file, False))
|
||||||
|
|
||||||
result.write()
|
result.write()
|
||||||
|
|
||||||
|
if has_errors:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
@click.group()
|
@click.group()
|
||||||
|
|
|
@ -210,6 +210,27 @@ def test_import_destination_in_source():
|
||||||
|
|
||||||
assert dest_path is None, dest_path
|
assert dest_path is None, dest_path
|
||||||
|
|
||||||
|
def test_import_invalid_file_exit_code():
|
||||||
|
temporary_folder, folder = helper.create_working_folder()
|
||||||
|
temporary_folder_destination, folder_destination = helper.create_working_folder()
|
||||||
|
|
||||||
|
# use a good and bad
|
||||||
|
origin_invalid = '%s/invalid.jpg' % folder
|
||||||
|
shutil.copyfile(helper.get_file('invalid.jpg'), origin_invalid)
|
||||||
|
|
||||||
|
origin_valid = '%s/valid.jpg' % folder
|
||||||
|
shutil.copyfile(helper.get_file('plain.jpg'), origin_valid)
|
||||||
|
|
||||||
|
helper.reset_dbs()
|
||||||
|
runner = CliRunner()
|
||||||
|
result = runner.invoke(elodie._import, ['--destination', folder_destination, origin_invalid, origin_valid])
|
||||||
|
helper.restore_dbs()
|
||||||
|
|
||||||
|
shutil.rmtree(folder)
|
||||||
|
shutil.rmtree(folder_destination)
|
||||||
|
|
||||||
|
assert result.exit_code == 1, result.exit_code
|
||||||
|
|
||||||
def test_update_location_on_audio():
|
def test_update_location_on_audio():
|
||||||
temporary_folder, folder = helper.create_working_folder()
|
temporary_folder, folder = helper.create_working_folder()
|
||||||
temporary_folder_destination, folder_destination = helper.create_working_folder()
|
temporary_folder_destination, folder_destination = helper.create_working_folder()
|
||||||
|
@ -428,6 +449,27 @@ def test_update_with_directory_passed_in():
|
||||||
|
|
||||||
assert updated_file_exists, updated_file_path
|
assert updated_file_exists, updated_file_path
|
||||||
|
|
||||||
|
def test_update_invalid_file_exit_code():
|
||||||
|
temporary_folder, folder = helper.create_working_folder()
|
||||||
|
temporary_folder_destination, folder_destination = helper.create_working_folder()
|
||||||
|
|
||||||
|
# use a good and bad
|
||||||
|
origin_invalid = '%s/invalid.jpg' % folder
|
||||||
|
shutil.copyfile(helper.get_file('invalid.jpg'), origin_invalid)
|
||||||
|
|
||||||
|
origin_valid = '%s/valid.jpg' % folder
|
||||||
|
shutil.copyfile(helper.get_file('plain.jpg'), origin_valid)
|
||||||
|
|
||||||
|
helper.reset_dbs()
|
||||||
|
runner = CliRunner()
|
||||||
|
result = runner.invoke(elodie._update, ['--album', 'test', origin_invalid, origin_valid])
|
||||||
|
helper.restore_dbs()
|
||||||
|
|
||||||
|
shutil.rmtree(folder)
|
||||||
|
shutil.rmtree(folder_destination)
|
||||||
|
|
||||||
|
assert result.exit_code == 1, result.exit_code
|
||||||
|
|
||||||
def test_regenerate_db_invalid_source():
|
def test_regenerate_db_invalid_source():
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
result = runner.invoke(elodie._generate_db, ['--source', '/invalid/path'])
|
result = runner.invoke(elodie._generate_db, ['--source', '/invalid/path'])
|
||||||
|
|
Loading…
Reference in New Issue