mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-06 01:49:56 +02:00
Merge branch '222-update-import' into 'develop'
Resolve "Add flag during import to replace already present tracks with new version" Closes #222 See merge request funkwhale/funkwhale!264
This commit is contained in:
commit
2182227f50
8 changed files with 89 additions and 16 deletions
|
@ -118,7 +118,7 @@ def test_run_import_skipping_accoustid(factories, mocker):
|
|||
path = os.path.join(DATA_DIR, "test.ogg")
|
||||
job = factories["music.FileImportJob"](audio_file__path=path)
|
||||
tasks.import_job_run(import_job_id=job.pk, use_acoustid=False)
|
||||
m.assert_called_once_with(job, False, use_acoustid=False)
|
||||
m.assert_called_once_with(job, use_acoustid=False)
|
||||
|
||||
|
||||
def test__do_import_skipping_accoustid(factories, mocker):
|
||||
|
@ -130,7 +130,7 @@ def test__do_import_skipping_accoustid(factories, mocker):
|
|||
path = os.path.join(DATA_DIR, "test.ogg")
|
||||
job = factories["music.FileImportJob"](mbid=None, audio_file__path=path)
|
||||
p = job.audio_file.path
|
||||
tasks._do_import(job, replace=False, use_acoustid=False)
|
||||
tasks._do_import(job, use_acoustid=False)
|
||||
m.assert_called_once_with(p)
|
||||
|
||||
|
||||
|
@ -144,10 +144,27 @@ def test__do_import_skipping_accoustid_if_no_key(factories, mocker, preferences)
|
|||
path = os.path.join(DATA_DIR, "test.ogg")
|
||||
job = factories["music.FileImportJob"](mbid=None, audio_file__path=path)
|
||||
p = job.audio_file.path
|
||||
tasks._do_import(job, replace=False, use_acoustid=False)
|
||||
tasks._do_import(job, use_acoustid=False)
|
||||
m.assert_called_once_with(p)
|
||||
|
||||
|
||||
def test__do_import_replace_if_duplicate(factories, mocker):
|
||||
existing_file = factories["music.TrackFile"]()
|
||||
existing_track = existing_file.track
|
||||
path = os.path.join(DATA_DIR, "test.ogg")
|
||||
mocker.patch(
|
||||
"funkwhale_api.providers.audiofile.tasks.import_track_data_from_path",
|
||||
return_value=existing_track,
|
||||
)
|
||||
job = factories["music.FileImportJob"](
|
||||
replace_if_duplicate=True, audio_file__path=path
|
||||
)
|
||||
tasks._do_import(job)
|
||||
with pytest.raises(existing_file.__class__.DoesNotExist):
|
||||
existing_file.refresh_from_db()
|
||||
assert existing_file.creation_date != job.track_file.creation_date
|
||||
|
||||
|
||||
def test_import_job_skip_if_already_exists(artists, albums, tracks, factories, mocker):
|
||||
path = os.path.join(DATA_DIR, "test.ogg")
|
||||
mbid = "9968a9d6-8d92-4051-8f76-674e157b6eed"
|
||||
|
|
|
@ -6,6 +6,7 @@ from django.core.management import call_command
|
|||
from django.core.management.base import CommandError
|
||||
|
||||
from funkwhale_api.providers.audiofile import tasks
|
||||
from funkwhale_api.music.models import ImportJob
|
||||
|
||||
DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "files")
|
||||
|
||||
|
@ -115,6 +116,19 @@ def test_import_with_multiple_argument(factories, mocker):
|
|||
mocked_filter.assert_called_once_with([path1, path2])
|
||||
|
||||
|
||||
def test_import_with_replace_flag(factories, mocker):
|
||||
factories["users.User"](username="me")
|
||||
path = os.path.join(DATA_DIR, "dummy_file.ogg")
|
||||
mocked_job_run = mocker.patch("funkwhale_api.music.tasks.import_job_run")
|
||||
call_command("import_files", path, username="me", replace=True, interactive=False)
|
||||
created_job = ImportJob.objects.latest("id")
|
||||
|
||||
assert created_job.replace_if_duplicate is True
|
||||
mocked_job_run.assert_called_once_with(
|
||||
import_job_id=created_job.id, use_acoustid=False
|
||||
)
|
||||
|
||||
|
||||
def test_import_files_creates_a_batch_and_job(factories, mocker):
|
||||
m = mocker.patch("funkwhale_api.music.tasks.import_job_run")
|
||||
user = factories["users.User"](username="me")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue