From e4d5173430ba1165848d81930184b5c5cdb31496 Mon Sep 17 00:00:00 2001 From: Roman Lutz Date: Sat, 11 Apr 2026 18:04:19 -0700 Subject: [PATCH] Add unit tests for prompt_converter_configuration.py Tests PromptConverterConfiguration init, defaults, and from_converters factory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../test_prompt_converter_configuration.py | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/unit/prompt_normalizer/test_prompt_converter_configuration.py diff --git a/tests/unit/prompt_normalizer/test_prompt_converter_configuration.py b/tests/unit/prompt_normalizer/test_prompt_converter_configuration.py new file mode 100644 index 0000000000..5a189c6006 --- /dev/null +++ b/tests/unit/prompt_normalizer/test_prompt_converter_configuration.py @@ -0,0 +1,73 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT license. + +from unittest.mock import MagicMock + +from pyrit.prompt_converter import PromptConverter +from pyrit.prompt_normalizer.prompt_converter_configuration import PromptConverterConfiguration + + +def _make_mock_converter(name: str = "MockConverter") -> PromptConverter: + mock = MagicMock(spec=PromptConverter) + mock.__class__.__name__ = name + return mock + + +def test_init_with_converters(): + c1 = _make_mock_converter("Converter1") + config = PromptConverterConfiguration(converters=[c1]) + assert config.converters == [c1] + assert config.indexes_to_apply is None + assert config.prompt_data_types_to_apply is None + + +def test_init_with_all_fields(): + c1 = _make_mock_converter() + config = PromptConverterConfiguration( + converters=[c1], + indexes_to_apply=[0, 2], + prompt_data_types_to_apply=["text", "image_path"], + ) + assert config.indexes_to_apply == [0, 2] + assert config.prompt_data_types_to_apply == ["text", "image_path"] + + +def test_from_converters_empty_list(): + result = PromptConverterConfiguration.from_converters(converters=[]) + assert result == [] + + +def test_from_converters_single(): + c1 = _make_mock_converter() + result = PromptConverterConfiguration.from_converters(converters=[c1]) + assert len(result) == 1 + assert result[0].converters == [c1] + assert result[0].indexes_to_apply is None + assert result[0].prompt_data_types_to_apply is None + + +def test_from_converters_multiple(): + c1 = _make_mock_converter("C1") + c2 = _make_mock_converter("C2") + c3 = _make_mock_converter("C3") + result = PromptConverterConfiguration.from_converters(converters=[c1, c2, c3]) + assert len(result) == 3 + assert result[0].converters == [c1] + assert result[1].converters == [c2] + assert result[2].converters == [c3] + + +def test_from_converters_each_config_has_defaults(): + c1 = _make_mock_converter() + c2 = _make_mock_converter() + result = PromptConverterConfiguration.from_converters(converters=[c1, c2]) + for cfg in result: + assert cfg.indexes_to_apply is None + assert cfg.prompt_data_types_to_apply is None + + +def test_init_with_multiple_converters(): + c1 = _make_mock_converter("C1") + c2 = _make_mock_converter("C2") + config = PromptConverterConfiguration(converters=[c1, c2]) + assert len(config.converters) == 2