From 3660c52998d2cea284fe3a6ed61c7209805230e1 Mon Sep 17 00:00:00 2001 From: quimmrc Date: Tue, 21 Jan 2025 12:50:43 +0100 Subject: [PATCH] add unit tests and check for dict keys in submitted files list --- accounts/tests/test_upload.py | 14 ++++++++++++++ accounts/views.py | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/accounts/tests/test_upload.py b/accounts/tests/test_upload.py index 81490d2d0..b22a7eda6 100644 --- a/accounts/tests/test_upload.py +++ b/accounts/tests/test_upload.py @@ -60,6 +60,20 @@ def test_handle_uploaded_file_html(self): self.assertEqual(resp.status_code, 200) self.assertEqual(os.path.exists(settings.UPLOADS_PATH + '/%i/%s' % (user.id, filename)), False) + @override_uploads_path_with_temp_directory + def test_handle_uploaded_duplicate_filenames_html(self): + user = User.objects.create_user("testuser", password="testpass") + self.client.force_login(user) + + filename = "file.wav" + d_filename = "file(1).wav" + f = SimpleUploadedFile(filename, b"file_content") + f1 = SimpleUploadedFile(filename, b"file_content_1") + resp = self.client.post("/home/upload/html/", {'file': [f, f1]}) + self.assertEqual(resp.status_code, 200) + self.assertEqual(os.path.exists(settings.UPLOADS_PATH + '/%i/%s' % (user.id, filename)), True) + self.assertEqual(os.path.exists(settings.UPLOADS_PATH + '/%i/%s' % (user.id, d_filename)), True) + @override_uploads_path_with_temp_directory def test_select_uploaded_files_to_describe(self): # Create audio files diff --git a/accounts/views.py b/accounts/views.py index 42d158f71..6627dd5e3 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1284,6 +1284,9 @@ def upload(request, no_flash=False): form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): submitted_files = request.FILES.getlist('files') + if not submitted_files: + #this allows upload_tests to work, requests use the dict key in singular + submitted_files = request.FILES.getlist('file') duplicated_filenames = list() for file_ in submitted_files: #check for duplicated names and add an identifier, otherwise, different files with the same @@ -1314,6 +1317,7 @@ def upload(request, no_flash=False): 'all_file_extensions': settings.ALLOWED_AUDIOFILE_EXTENSIONS, 'uploads_enabled': settings.UPLOAD_AND_DESCRIPTION_ENABLED } + #print(tvars) return render(request, 'accounts/upload.html', tvars)