Skip to content

Commit 523f5cf

Browse files
committed
Shared assert method for response
1 parent 0d5a945 commit 523f5cf

File tree

1 file changed

+44
-80
lines changed

1 file changed

+44
-80
lines changed

tests/test_describe.py

Lines changed: 44 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)