From 27dce44d408980b21738c10500e3ba24a2c484f5 Mon Sep 17 00:00:00 2001 From: ilias Date: Mon, 29 Jun 2026 16:32:56 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(backend)=20cover=20encoded=20S3=20key?= =?UTF-8?q?s=20with=20plus=20signs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a regression test for already encoded S3 notification keys that contain plus signs in the prefix. --- .../core/tests/recording/event/test_parsers.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/backend/core/tests/recording/event/test_parsers.py b/src/backend/core/tests/recording/event/test_parsers.py index e48b5bce..fcbf0694 100644 --- a/src/backend/core/tests/recording/event/test_parsers.py +++ b/src/backend/core/tests/recording/event/test_parsers.py @@ -406,8 +406,8 @@ def test_s3_parser_accepts_unencoded_filepath(settings): assert parser.get_recording_id(data) == recording_id -def test_s3_parser_preserves_plus_signs_in_raw_filepath(settings): - """Test S3 parser preserves plus signs while encoding slash separators.""" +def test_s3_parser_preserves_plus_signs_in_encoded_filepath(settings): + """Test S3 parser preserves plus signs in already encoded object keys.""" settings.RECORDING_OUTPUT_FOLDER = "recordings" recording_id = "80ae9fe5-639a-438b-b86e-9e3dd2d55f4d" @@ -419,17 +419,14 @@ def test_s3_parser_preserves_plus_signs_in_raw_filepath(settings): "s3": { "bucket": {"name": "recordings-bucket"}, "object": { - "key": f"folder+name/recordings/{recording_id}.mp4", + "key": f"folder+name%2Frecordings%2F{recording_id}.mp4", }, } } ] } - event = parser.parse(data) - - assert event.filepath == f"folder+name%2Frecordings%2F{recording_id}.mp4" - assert parser.validate(event) == recording_id + assert parser.get_recording_id(data) == recording_id def test_s3_get_recording_id_success(s3_parser, valid_s3_event):