Commit c80b80fb authored by Agate's avatar Agate 💬

Merge branch '1148-import-3.5' into 'master'

Resolve "CLI in-place import impossible with virtualenv with python3.5"

See merge request funkwhale/funkwhale!1134
parents 23db50ed f54038ca
......@@ -27,7 +27,8 @@ def crawl_dir(dir, extensions, recursive=True, ignored=[]):
if os.path.isfile(dir):
yield dir
return
with os.scandir(dir) as scanner:
try:
scanner = os.scandir(dir)
for entry in scanner:
if entry.is_file():
for e in extensions:
......@@ -38,6 +39,9 @@ def crawl_dir(dir, extensions, recursive=True, ignored=[]):
yield from crawl_dir(
entry, extensions, recursive=recursive, ignored=ignored
)
finally:
if hasattr(scanner, "close"):
scanner.close()
def batch(iterable, n=1):
......
......@@ -352,3 +352,17 @@ def test_handle_modified_update_existing_path_if_found_and_attributed_to(
event=event, stdout=stdout, library=library, in_place=True,
)
update_track_metadata.assert_not_called()
def test_import_files(factories, capsys):
# smoke test to ensure the command run properly
library = factories["music.Library"](actor__local=True)
call_command(
"import_files", str(library.uuid), DATA_DIR, interactive=False, recursive=True
)
captured = capsys.readouterr()
imported = library.uploads.filter(import_status="finished").count()
assert imported > 0
assert "Successfully imported {} new tracks".format(imported) in captured.out
assert "For details, please refer to import reference" in captured.out
Fixed recursive CLI importing crashing under Python 3.5 (#1148, #1147)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment