From 8c82e6c46e7b6340304fafa6faf0c165cdb1ff4d Mon Sep 17 00:00:00 2001 From: WatchTree-19 <119982314+WatchTree-19@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:31:43 +0100 Subject: [PATCH 1/2] =?UTF-8?q?fix(converter):=20correct=20=C3=86=20morse?= =?UTF-8?q?=20key=20with=20a=20stray=20leading=20space?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The extended morse map keyed Æ as " Æ" (leading space), so Æ was in supported_charset but missing from the lookup, making MorseConverter raise KeyError on any input containing æ/Æ. +regression tests. Signed-off-by: WatchTree-19 <119982314+WatchTree-19@users.noreply.github.com> --- pyrit/prompt_converter/morse_converter.py | 2 +- .../prompt_converter/test_morse_converter.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pyrit/prompt_converter/morse_converter.py b/pyrit/prompt_converter/morse_converter.py index 70fd52a73f..49d1f292fd 100644 --- a/pyrit/prompt_converter/morse_converter.py +++ b/pyrit/prompt_converter/morse_converter.py @@ -137,7 +137,7 @@ def _morse(self, text: str) -> str: "Å": ".--.-", "Ä": ".-.-", "Ą": ".-.-", - " Æ": ".-.-", + "Æ": ".-.-", "Ć": "-.-..", "Ĉ": "-.-..", "Ç": "-.-..", diff --git a/tests/unit/prompt_converter/test_morse_converter.py b/tests/unit/prompt_converter/test_morse_converter.py index 96cbcb11b5..4a787ca986 100644 --- a/tests/unit/prompt_converter/test_morse_converter.py +++ b/tests/unit/prompt_converter/test_morse_converter.py @@ -51,3 +51,22 @@ async def test_morse_converter_input_not_supported(): converter = MorseConverter() with pytest.raises(ValueError): await converter.convert_async(prompt="hello", input_type="image_path") + + +async def test_morse_converter_extended_ae_ligature(): + # Regression: the extended mapping key for Æ previously contained a stray + # leading space (" Æ"), so any prompt containing 'æ'/'Æ' raised KeyError. + converter = MorseConverter() + result = await converter.convert_async(prompt="æ", input_type="text") + assert isinstance(result, ConverterResult) + assert result.output_text == ".-.-" + assert result.output_type == "text" + + +async def test_morse_converter_extended_ae_in_word(): + converter = MorseConverter() + result = await converter.convert_async(prompt="Æther", input_type="text") + assert isinstance(result, ConverterResult) + # Æ T H E R + assert result.output_text == ".-.- - .... . .-." + assert result.output_type == "text" From 37e8d1e56258b3bd0d39be9fd6669101034e27e8 Mon Sep 17 00:00:00 2001 From: Richard Lundeen Date: Wed, 8 Jul 2026 09:04:37 -0700 Subject: [PATCH 2/2] test(converter): remove extra Morse Ae regression tests Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../prompt_converter/test_morse_converter.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/tests/unit/prompt_converter/test_morse_converter.py b/tests/unit/prompt_converter/test_morse_converter.py index 4a787ca986..96cbcb11b5 100644 --- a/tests/unit/prompt_converter/test_morse_converter.py +++ b/tests/unit/prompt_converter/test_morse_converter.py @@ -51,22 +51,3 @@ async def test_morse_converter_input_not_supported(): converter = MorseConverter() with pytest.raises(ValueError): await converter.convert_async(prompt="hello", input_type="image_path") - - -async def test_morse_converter_extended_ae_ligature(): - # Regression: the extended mapping key for Æ previously contained a stray - # leading space (" Æ"), so any prompt containing 'æ'/'Æ' raised KeyError. - converter = MorseConverter() - result = await converter.convert_async(prompt="æ", input_type="text") - assert isinstance(result, ConverterResult) - assert result.output_text == ".-.-" - assert result.output_type == "text" - - -async def test_morse_converter_extended_ae_in_word(): - converter = MorseConverter() - result = await converter.convert_async(prompt="Æther", input_type="text") - assert isinstance(result, ConverterResult) - # Æ T H E R - assert result.output_text == ".-.- - .... . .-." - assert result.output_type == "text"