Compare commits

...

2 Commits

Author SHA1 Message Date
Brooklyn Nicholson
8ac288e932 chore: uptick 2026-03-09 20:57:55 -05:00
Brooklyn Nicholson
888277ece8 chore: fix vision test by mocking aux client 2026-03-09 20:53:04 -05:00

View File

@@ -244,17 +244,18 @@ class TestErrorLoggingExcInfo:
with patch("tools.vision_tools._validate_image_url", return_value=True), \ with patch("tools.vision_tools._validate_image_url", return_value=True), \
patch("tools.vision_tools._download_image", new_callable=AsyncMock, patch("tools.vision_tools._download_image", new_callable=AsyncMock,
side_effect=Exception("download boom")), \ side_effect=Exception("download boom")), \
patch("tools.vision_tools._aux_async_client", new="fake"), \
patch("tools.vision_tools.DEFAULT_VISION_MODEL", new="test/model"), \
caplog.at_level(logging.ERROR, logger="tools.vision_tools"): caplog.at_level(logging.ERROR, logger="tools.vision_tools"):
result = await vision_analyze_tool( result = await vision_analyze_tool(
"https://example.com/img.jpg", "describe this", "test/model" "https://example.com/img.jpg", "describe this", "test/model"
) )
result_data = json.loads(result) result_data = json.loads(result)
# Error response uses "success": False, not an "error" key
assert result_data["success"] is False assert result_data["success"] is False
error_records = [r for r in caplog.records if r.levelno >= logging.ERROR] error_records = [r for r in caplog.records if r.levelno >= logging.ERROR]
assert any(r.exc_info is not None for r in error_records) assert any(r.exc_info and r.exc_info[0] is not None for r in error_records)
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_cleanup_error_logs_exc_info(self, tmp_path, caplog): async def test_cleanup_error_logs_exc_info(self, tmp_path, caplog):