@@ -47,46 +47,7 @@ def test_describe_upload_with_file(client, sample_image_data, mock_workflow):
4747 response = client .post ("/api/v1/describe/upload" , files = files , data = data )
4848 assert response .status_code == status .HTTP_200_OK
4949
50- result = response .json ()
51- assert result ["success" ] is True
52- assert result ["filename" ] == "test.png"
53- assert result ["result" ] is not None
54-
55- # Verify full result structure
56- result_data = result ["result" ]
57- assert "full_description" in result_data
58- assert "alt_text" in result_data
59- assert "transcript" in result_data
60- assert "safety_assessment" in result_data
61- assert "review_assessment" in result_data
62- assert "version" in result_data
63-
64- # Verify safety_assessment structure and default values
65- safety = result_data ["safety_assessment" ]
66- assert safety ["people_visible" ] == "NO"
67- assert safety ["violent_content" ] == "NONE"
68- assert safety ["confidence" ] == "LOW"
69- assert safety ["symbols_present" ]["types" ] == ["NONE" ]
70- assert safety ["symbols_present" ]["names" ] == []
71- assert safety ["text_characteristics" ]["text_present" ] == "NO"
72- assert safety ["text_characteristics" ]["text_type" ] == "N/A"
73-
74- # Verify review_assessment structure and default values
75- review = result_data ["review_assessment" ]
76- assert review ["biased_language" ] == "NO"
77- assert review ["stereotyping" ] == "NO"
78- assert review ["offensive_language" ] == "NO"
79- assert review ["safety_assessment_consistency" ] == "CONSISTENT"
80- assert review ["concerns_for_review" ] == []
81- assert isinstance (review ["concerns_for_review" ], list )
82-
83- # Verify version structure
84- version = result_data ["version" ]
85- assert "version" in version
86- assert "models" in version
87- assert "timestamp" in version
88- assert isinstance (version ["models" ], list )
89- assert len (version ["models" ]) > 0
50+ _assert_default_response_populated (response , "test.png" )
9051
9152 # Verify workflow was called
9253 mock_workflow .process_image .assert_called_once ()
@@ -132,46 +93,7 @@ def test_describe_uri_with_valid_request(client, mock_workflow, sample_image_dat
13293 response = client .post ("/api/v1/describe/uri" , json = payload )
13394 assert response .status_code == status .HTTP_200_OK
13495
135- result = response .json ()
136- assert result ["success" ] is True
137- assert result ["filename" ] == "image.jpg"
138- assert result ["result" ] is not None
139-
140- # Verify full result structure
141- result_data = result ["result" ]
142- assert "full_description" in result_data
143- assert "alt_text" in result_data
144- assert "transcript" in result_data
145- assert "safety_assessment" in result_data
146- assert "review_assessment" in result_data
147- assert "version" in result_data
148-
149- # Verify safety_assessment structure and default values
150- safety = result_data ["safety_assessment" ]
151- assert safety ["people_visible" ] == "NO"
152- assert safety ["violent_content" ] == "NONE"
153- assert safety ["confidence" ] == "LOW"
154- assert safety ["symbols_present" ]["types" ] == ["NONE" ]
155- assert safety ["symbols_present" ]["names" ] == []
156- assert safety ["text_characteristics" ]["text_present" ] == "NO"
157- assert safety ["text_characteristics" ]["text_type" ] == "N/A"
158-
159- # Verify review_assessment structure and default values
160- review = result_data ["review_assessment" ]
161- assert review ["biased_language" ] == "NO"
162- assert review ["stereotyping" ] == "NO"
163- assert review ["offensive_language" ] == "NO"
164- assert review ["safety_assessment_consistency" ] == "CONSISTENT"
165- assert review ["concerns_for_review" ] == []
166- assert isinstance (review ["concerns_for_review" ], list )
167-
168- # Verify version structure
169- version = result_data ["version" ]
170- assert "version" in version
171- assert "models" in version
172- assert "timestamp" in version
173- assert isinstance (version ["models" ], list )
174- assert len (version ["models" ]) > 0
96+ _assert_default_response_populated (response , "image.jpg" )
17597
17698 # Verify workflow was called
17799 mock_workflow .process_image .assert_called_once ()
@@ -368,3 +290,45 @@ def test_describe_uri_with_http_scheme(client, mock_workflow, sample_image_data)
368290
369291 response = client .post ("/api/v1/describe/uri" , json = payload )
370292 assert response .status_code == status .HTTP_200_OK
293+
294+ def _assert_default_response_populated (response , expected_filename ):
295+ result = response .json ()
296+ assert result ["success" ] is True
297+ assert result ["filename" ] == expected_filename
298+ assert result ["result" ] is not None
299+
300+ # Verify full result structure
301+ result_data = result ["result" ]
302+ assert "full_description" in result_data
303+ assert "alt_text" in result_data
304+ assert "transcript" in result_data
305+ assert "safety_assessment" in result_data
306+ assert "review_assessment" in result_data
307+ assert "version" in result_data
308+
309+ # Verify safety_assessment structure and default values
310+ safety = result_data ["safety_assessment" ]
311+ assert safety ["people_visible" ] == "NO"
312+ assert safety ["violent_content" ] == "NONE"
313+ assert safety ["confidence" ] == "LOW"
314+ assert safety ["symbols_present" ]["types" ] == ["NONE" ]
315+ assert safety ["symbols_present" ]["names" ] == []
316+ assert safety ["text_characteristics" ]["text_present" ] == "NO"
317+ assert safety ["text_characteristics" ]["text_type" ] == "N/A"
318+
319+ # Verify review_assessment structure and default values
320+ review = result_data ["review_assessment" ]
321+ assert review ["biased_language" ] == "NO"
322+ assert review ["stereotyping" ] == "NO"
323+ assert review ["offensive_language" ] == "NO"
324+ assert review ["safety_assessment_consistency" ] == "CONSISTENT"
325+ assert review ["concerns_for_review" ] == []
326+ assert isinstance (review ["concerns_for_review" ], list )
327+
328+ # Verify version structure
329+ version = result_data ["version" ]
330+ assert "version" in version
331+ assert "models" in version
332+ assert "timestamp" in version
333+ assert isinstance (version ["models" ], list )
334+ assert len (version ["models" ]) > 0
0 commit comments