diff --git a/src/backend/core/recording/event/parsers.py b/src/backend/core/recording/event/parsers.py index ccf12d6a..9fb195ed 100644 --- a/src/backend/core/recording/event/parsers.py +++ b/src/backend/core/recording/event/parsers.py @@ -86,7 +86,7 @@ class MinioParser: # pylint: disable=line-too-long self._filepath_regex = re.compile( - r"(?P(?:[^%]+%2F)*)?(?P[0-9a-fA-F\-]{36})\.(?P[a-zA-Z0-9]+)" + r"(?P(?:[^%]+%2F)+)?(?P[0-9a-fA-F\-]{36})\.(?P[a-zA-Z0-9]+)" ) @staticmethod diff --git a/src/backend/core/tests/recording/event/test_parsers.py b/src/backend/core/tests/recording/event/test_parsers.py index 080d98c3..65904c6c 100644 --- a/src/backend/core/tests/recording/event/test_parsers.py +++ b/src/backend/core/tests/recording/event/test_parsers.py @@ -129,8 +129,11 @@ def test_validate_invalid_filetype(minio_parser): @pytest.mark.parametrize( "invalid_filepath", [ - "invalid_filepath", + "invalid_filepath", # totally invalid string "recording/46d1a121-2426-484d-8fb3-09b5d886f7a8.ogg", + "recording/46d1a121-2426-484d-8fb3-09b5d886f7a8", # missing extension + "46d1a121-2426-484d-8fb3-09b5d886f7a8", # missing url_encoded_folder_path and extension + "", # empty string "recording%2F46d1a1212426484d8fb309b5d886f7a8.ogg", ], )