Fix replay.json 400 response for empty collection (#2445)
- fix #2443 - don't throw error in list_pages() if no crawls provided, just return empty list - ensure an empty collection returns 200 on replay.json, add tests
This commit is contained in:
		
							parent
							
								
									2e86ee3fcc
								
							
						
					
					
						commit
						2263745df3
					
				| @ -538,11 +538,9 @@ class PageOps: | ||||
|             crawl_ids = await self.coll_ops.get_collection_crawl_ids( | ||||
|                 coll_id, public_or_unlisted_only | ||||
|             ) | ||||
|         elif not crawl_ids: | ||||
|             # neither coll_id nor crawl_id, error | ||||
|             raise HTTPException( | ||||
|                 status_code=400, detail="either crawl_ids or coll_id must be provided" | ||||
|             ) | ||||
| 
 | ||||
|         if not crawl_ids: | ||||
|             return [], 0 | ||||
| 
 | ||||
|         query: dict[str, object] = { | ||||
|             "crawl_id": {"$in": crawl_ids}, | ||||
|  | ||||
| @ -155,6 +155,38 @@ def test_create_collection_empty_name( | ||||
|     assert r.status_code == 422 | ||||
| 
 | ||||
| 
 | ||||
| def test_create_empty_collection( | ||||
|     crawler_auth_headers, default_org_id, crawler_crawl_id, admin_crawl_id | ||||
| ): | ||||
|     r = requests.post( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/collections", | ||||
|         headers=crawler_auth_headers, | ||||
|         json={ | ||||
|             "name": "Empty Collection", | ||||
|         }, | ||||
|     ) | ||||
|     assert r.status_code == 200 | ||||
|     coll_id = r.json()["id"] | ||||
| 
 | ||||
|     r = requests.get( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/collections/{coll_id}/replay.json", | ||||
|         headers=crawler_auth_headers, | ||||
|     ) | ||||
|     assert r.status_code == 200 | ||||
|     data = r.json() | ||||
|     assert data["crawlCount"] == 0 | ||||
|     assert data["pageCount"] == 0 | ||||
|     assert len(data["resources"]) == 0 | ||||
| 
 | ||||
|     # Delete the empty collection | ||||
|     r = requests.delete( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/collections/{coll_id}", | ||||
|         headers=crawler_auth_headers, | ||||
|     ) | ||||
|     assert r.status_code == 200 | ||||
|     assert r.json()["success"] | ||||
| 
 | ||||
| 
 | ||||
| def test_update_collection( | ||||
|     crawler_auth_headers, default_org_id, crawler_crawl_id, admin_crawl_id | ||||
| ): | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user