uploads api: support filtering uploads by collectionId (#969)
tests: add collection filter test
This commit is contained in:
		
							parent
							
								
									a640f58657
								
							
						
					
					
						commit
						f1bce310d0
					
				| @ -278,6 +278,7 @@ def init_uploads_api(app, mdb, users, crawl_manager, orgs, user_dep): | ||||
|         userid: Optional[UUID4] = None, | ||||
|         name: Optional[str] = None, | ||||
|         description: Optional[str] = None, | ||||
|         collectionId: Optional[UUID4] = None, | ||||
|         sortBy: Optional[str] = "finished", | ||||
|         sortDirection: Optional[int] = -1, | ||||
|     ): | ||||
| @ -288,6 +289,7 @@ def init_uploads_api(app, mdb, users, crawl_manager, orgs, user_dep): | ||||
|             description=description, | ||||
|             page_size=pageSize, | ||||
|             page=page, | ||||
|             collection_id=collectionId, | ||||
|             sort_by=sortBy, | ||||
|             sort_direction=sortDirection, | ||||
|             type_="upload", | ||||
|  | ||||
| @ -79,6 +79,87 @@ def test_get_stream_upload(admin_auth_headers, default_org_id): | ||||
|     assert r.status_code == 200 | ||||
| 
 | ||||
| 
 | ||||
| def test_upload_form(admin_auth_headers, default_org_id): | ||||
|     with open(os.path.join(curr_dir, "data", "example.wacz"), "rb") as fh: | ||||
|         data = fh.read() | ||||
| 
 | ||||
|     files = [ | ||||
|         ("uploads", ("test.wacz", data, "application/octet-stream")), | ||||
|         ("uploads", ("test-2.wacz", data, "application/octet-stream")), | ||||
|         ("uploads", ("test.wacz", data, "application/octet-stream")), | ||||
|     ] | ||||
| 
 | ||||
|     r = requests.put( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads/formdata?name=test2.wacz", | ||||
|         headers=admin_auth_headers, | ||||
|         files=files, | ||||
|     ) | ||||
| 
 | ||||
|     assert r.status_code == 200 | ||||
|     assert r.json()["added"] | ||||
| 
 | ||||
|     global upload_id_2 | ||||
|     upload_id_2 = r.json()["id"] | ||||
| 
 | ||||
| 
 | ||||
| def test_list_uploads(admin_auth_headers, default_org_id): | ||||
|     r = requests.get( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads", | ||||
|         headers=admin_auth_headers, | ||||
|     ) | ||||
|     results = r.json() | ||||
| 
 | ||||
|     assert len(results["items"]) > 1 | ||||
| 
 | ||||
|     found = None | ||||
| 
 | ||||
|     for res in results["items"]: | ||||
|         if res["id"] == upload_id_2: | ||||
|             found = res | ||||
| 
 | ||||
|     assert found | ||||
|     assert found["name"] == "test2.wacz" | ||||
| 
 | ||||
|     assert "files" not in res | ||||
|     assert "resources" not in res | ||||
| 
 | ||||
| 
 | ||||
| def test_collection_uploads(admin_auth_headers, default_org_id): | ||||
|     # Create collection with one upload | ||||
|     r = requests.post( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/collections", | ||||
|         headers=admin_auth_headers, | ||||
|         json={ | ||||
|             "crawlIds": [upload_id], | ||||
|             "name": "My Test Coll", | ||||
|         }, | ||||
|     ) | ||||
|     print(r.json()) | ||||
|     assert r.status_code == 200 | ||||
|     data = r.json() | ||||
|     coll_id = data["id"] | ||||
|     assert data["added"] | ||||
| 
 | ||||
|     # Test uploads filtered by collection | ||||
|     r = requests.get( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads?collectionId={coll_id}", | ||||
|         headers=admin_auth_headers, | ||||
|     ) | ||||
| 
 | ||||
|     results = r.json() | ||||
| 
 | ||||
|     assert len(results["items"]) == 1 | ||||
|     assert results["items"][0]["id"] == upload_id | ||||
| 
 | ||||
|     # Delete Collection | ||||
|     r = requests.delete( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/collections/{coll_id}", | ||||
|         headers=admin_auth_headers, | ||||
|     ) | ||||
|     assert r.status_code == 200 | ||||
|     assert r.json()["success"] | ||||
| 
 | ||||
| 
 | ||||
| def test_get_upload_replay_json(admin_auth_headers, default_org_id): | ||||
|     r = requests.get( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads/{upload_id}/replay.json", | ||||
| @ -224,50 +305,6 @@ def test_delete_stream_upload_2(admin_auth_headers, default_org_id): | ||||
|     assert r.json()["deleted"] == True | ||||
| 
 | ||||
| 
 | ||||
| def test_upload_form(admin_auth_headers, default_org_id): | ||||
|     with open(os.path.join(curr_dir, "data", "example.wacz"), "rb") as fh: | ||||
|         data = fh.read() | ||||
| 
 | ||||
|     files = [ | ||||
|         ("uploads", ("test.wacz", data, "application/octet-stream")), | ||||
|         ("uploads", ("test-2.wacz", data, "application/octet-stream")), | ||||
|         ("uploads", ("test.wacz", data, "application/octet-stream")), | ||||
|     ] | ||||
| 
 | ||||
|     r = requests.put( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads/formdata?name=test2.wacz", | ||||
|         headers=admin_auth_headers, | ||||
|         files=files, | ||||
|     ) | ||||
| 
 | ||||
|     assert r.status_code == 200 | ||||
|     assert r.json()["added"] | ||||
| 
 | ||||
|     global upload_id_2 | ||||
|     upload_id_2 = r.json()["id"] | ||||
| 
 | ||||
| 
 | ||||
| def test_list_form_upload(admin_auth_headers, default_org_id): | ||||
|     r = requests.get( | ||||
|         f"{API_PREFIX}/orgs/{default_org_id}/uploads", | ||||
|         headers=admin_auth_headers, | ||||
|     ) | ||||
|     results = r.json() | ||||
| 
 | ||||
|     assert len(results["items"]) > 0 | ||||
| 
 | ||||
|     found = None | ||||
| 
 | ||||
|     for res in results["items"]: | ||||
|         if res["id"] == upload_id_2: | ||||
|             found = res | ||||
| 
 | ||||
|     assert found | ||||
|     assert found["name"] == "test2.wacz" | ||||
| 
 | ||||
|     assert "files" not in res | ||||
|     assert "resources" not in res | ||||
| 
 | ||||
| 
 | ||||
| def test_verify_from_upload_resource_count(admin_auth_headers, default_org_id): | ||||
|     r = requests.get( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user