Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions deploy/docker/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -906,9 +906,6 @@ async def crawl(
hooks_config=hooks_config,
crawler_configs=crawl_request.crawler_configs,
)
# check if all of the results are not successful
if all(not result["success"] for result in results["results"]):
raise HTTPException(500, f"Crawl request failed: {results['results'][0]['error_message']}")
return JSONResponse(results)


Expand Down
28 changes: 28 additions & 0 deletions deploy/docker/tests/test_crawl_failure_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
def test_all_failed_crawl_returns_results(stock_client, server_module, monkeypatch):
async def failed_crawl(**kwargs):
return {
"success": True,
"results": [
{
"url": "https://example.com",
"success": False,
"error_message": "Wait condition failed: selector not found",
}
],
}

monkeypatch.setattr(server_module, "handle_crawl_request", failed_crawl)

from auth import create_access_token

token = create_access_token({"sub": "test@example.com"})
response = stock_client.post(
"/crawl",
json={"urls": ["https://example.com"]},
headers={"Authorization": f"Bearer {token}"},
)

assert response.status_code == 200
result = response.json()["results"][0]
assert result["success"] is False
assert "Wait condition failed" in result["error_message"]
6 changes: 3 additions & 3 deletions tests/docker/test_server_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -683,9 +683,9 @@ async def test_invalid_url_handling(self, async_client: httpx.AsyncClient):
# Should return 200 with failed results, not 500
print(f"Status code: {response.status_code}")
print(f"Response: {response.text}")
assert response.status_code == 500
assert response.status_code == 200
data = response.json()
assert data["detail"].startswith("Crawl request failed:")
assert all(not result["success"] for result in data["results"])

async def test_mixed_success_failure_urls(self, async_client: httpx.AsyncClient):
"""Test handling of mixed success/failure URLs."""
Expand Down Expand Up @@ -887,4 +887,4 @@ async def test_malformed_request_handling(self, async_client: httpx.AsyncClient)
# Execute pytest
exit_code = pytest.main(pytest_args)

print(f"Pytest finished with exit code: {exit_code}")
print(f"Pytest finished with exit code: {exit_code}")
Loading