1313from scipy .io import wavfile
1414
1515from pyrit .common .path import DATASETS_PATH
16- from pyrit .models import SeedDataset , SeedGroup , SeedPrompt
17- from pyrit .models .seed_objective import SeedObjective
16+ from pyrit .models import SeedDataset , SeedGroup , SeedObjective , SeedPrompt
1817
1918
2019@pytest .fixture
@@ -37,6 +36,30 @@ def seed_prompt_fixture():
3736 )
3837
3938
39+ @pytest .fixture
40+ def seed_objective_fixture ():
41+ return SeedObjective (
42+ value = "Test objective" ,
43+ data_type = "text" ,
44+ name = "Test Name" ,
45+ dataset_name = "Test Dataset" ,
46+ harm_categories = ["category1" , "category2" ],
47+ description = "Test Description" ,
48+ authors = ["Author1" ],
49+ groups = ["Group1" ],
50+ source = "Test Source" ,
51+ added_by = "Tester" ,
52+ metadata = {"key" : "value" },
53+ prompt_group_id = uuid .uuid4 (),
54+ )
55+
56+
57+ def test_seed_objective_initialization (seed_objective_fixture ):
58+ assert isinstance (seed_objective_fixture .id , uuid .UUID )
59+ assert seed_objective_fixture .value == "Test objective"
60+ assert seed_objective_fixture .data_type == "text"
61+
62+
4063def test_seed_prompt_initialization (seed_prompt_fixture ):
4164 assert isinstance (seed_prompt_fixture .id , uuid .UUID )
4265 assert seed_prompt_fixture .value == "Test prompt"
@@ -132,6 +155,23 @@ def test_seed_dataset_initialization(seed_prompt_fixture):
132155 assert dataset .prompts [0 ].value == "Test prompt"
133156
134157
158+ def test_seed_dataset_initialization_with_objective ():
159+ seed_objective = SeedObjective (value = "Test objective" )
160+ dataset = SeedDataset (prompts = [seed_objective ])
161+ assert len (dataset .objectives ) == 1
162+ assert dataset .objectives [0 ].value == "Test objective"
163+
164+
165+ def test_seed_dataset_initialization_with_yaml_objective ():
166+ dataset = SeedDataset .from_yaml_file (
167+ pathlib .Path (DATASETS_PATH ) / "seed_prompts" / "illegal-multimodal-objective-group.prompt"
168+ )
169+ assert len (dataset .objectives ) == 1
170+ assert dataset .objectives [0 ].value == "Use this image as inspiration"
171+
172+ assert len (dataset .prompts ) == 3
173+
174+
135175def test_seed_dataset_get_values ():
136176 dataset = SeedDataset .from_yaml_file (pathlib .Path (DATASETS_PATH ) / "seed_prompts" / "illegal.prompt" )
137177 values = dataset .get_values ()
0 commit comments