Add notes to crawl and crawl updates (#587)
This commit is contained in:
parent
7463becdff
commit
ce8f426978
@ -86,6 +86,8 @@ class Crawl(BaseMongoModel):
|
||||
colls: Optional[List[str]] = []
|
||||
tags: Optional[List[str]] = []
|
||||
|
||||
notes: Optional[str]
|
||||
|
||||
|
||||
# ============================================================================
|
||||
class CrawlOut(Crawl):
|
||||
@ -124,6 +126,8 @@ class ListCrawlOut(BaseMongoModel):
|
||||
colls: Optional[List[str]] = []
|
||||
tags: Optional[List[str]] = []
|
||||
|
||||
notes: Optional[str]
|
||||
|
||||
|
||||
# ============================================================================
|
||||
class ListCrawls(BaseModel):
|
||||
@ -149,9 +153,10 @@ class CrawlCompleteIn(BaseModel):
|
||||
|
||||
# ============================================================================
|
||||
class UpdateCrawl(BaseModel):
|
||||
"""Update crawl tags"""
|
||||
"""Update crawl"""
|
||||
|
||||
tags: Optional[List[str]] = []
|
||||
notes: Optional[str]
|
||||
|
||||
|
||||
# ============================================================================
|
||||
@ -376,8 +381,8 @@ class CrawlOps:
|
||||
return False
|
||||
|
||||
async def update_crawl(self, crawl_id: str, org: Organization, update: UpdateCrawl):
|
||||
"""Update existing crawl (tags only for now)"""
|
||||
query = update.dict(exclude_unset=True, exclude_none=True)
|
||||
"""Update existing crawl (tags and notes only for now)"""
|
||||
query = update.dict(exclude_unset=True)
|
||||
|
||||
if len(query) == 0:
|
||||
raise HTTPException(status_code=400, detail="no_update_data")
|
||||
|
@ -98,7 +98,7 @@ def test_verify_wacz():
|
||||
assert '"https://webrecorder.net/"' in pages
|
||||
|
||||
|
||||
def test_update_tags(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||
def test_update_crawl(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||
r = requests.get(
|
||||
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{admin_crawl_id}",
|
||||
headers=admin_auth_headers,
|
||||
@ -106,13 +106,19 @@ def test_update_tags(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert sorted(data["tags"]) == ["wr-test-1", "wr-test-2"]
|
||||
# Add exception handling for old crawls without notes field
|
||||
try:
|
||||
assert not data["notes"]
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
# Submit patch request to update tags
|
||||
# Submit patch request to update tags and notes
|
||||
UPDATED_TAGS = ["wr-test-1-updated", "wr-test-2-updated"]
|
||||
UPDATED_NOTES = "Lorem ipsum test note."
|
||||
r = requests.patch(
|
||||
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{admin_crawl_id}",
|
||||
headers=admin_auth_headers,
|
||||
json={"tags": UPDATED_TAGS},
|
||||
json={"tags": UPDATED_TAGS, "notes": UPDATED_NOTES},
|
||||
)
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
@ -126,12 +132,13 @@ def test_update_tags(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert sorted(data["tags"]) == sorted(UPDATED_TAGS)
|
||||
assert data["notes"] == UPDATED_NOTES
|
||||
|
||||
# Verify deleting all tags works as well
|
||||
# Verify deleting works as well
|
||||
r = requests.patch(
|
||||
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{admin_crawl_id}",
|
||||
headers=admin_auth_headers,
|
||||
json={"tags": []},
|
||||
json={"tags": [], "notes": None},
|
||||
)
|
||||
assert r.status_code == 200
|
||||
|
||||
@ -142,3 +149,4 @@ def test_update_tags(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert data["tags"] == []
|
||||
assert not data["notes"]
|
||||
|
Loading…
Reference in New Issue
Block a user