Add optional description to crawl configs and return in crawl endpoints (#707)
This commit is contained in:
parent
0b0bae00c8
commit
4136bdad2e
@ -100,6 +100,8 @@ class CrawlConfigIn(BaseModel):
|
|||||||
|
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
|
description: Optional[str]
|
||||||
|
|
||||||
jobType: Optional[JobType] = JobType.CUSTOM
|
jobType: Optional[JobType] = JobType.CUSTOM
|
||||||
|
|
||||||
profileid: Optional[str]
|
profileid: Optional[str]
|
||||||
@ -156,6 +158,7 @@ class CrawlConfig(CrawlConfigCore):
|
|||||||
"""Schedulable config"""
|
"""Schedulable config"""
|
||||||
|
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
|
description: Optional[str]
|
||||||
|
|
||||||
created: datetime
|
created: datetime
|
||||||
createdBy: Optional[UUID4]
|
createdBy: Optional[UUID4]
|
||||||
@ -206,6 +209,7 @@ class UpdateCrawlConfig(BaseModel):
|
|||||||
# metadata: not revision tracked
|
# metadata: not revision tracked
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
tags: Optional[List[str]]
|
tags: Optional[List[str]]
|
||||||
|
description: Optional[str]
|
||||||
|
|
||||||
# crawl data: revision tracked
|
# crawl data: revision tracked
|
||||||
schedule: Optional[str]
|
schedule: Optional[str]
|
||||||
@ -375,6 +379,9 @@ class CrawlConfigOps:
|
|||||||
)
|
)
|
||||||
|
|
||||||
metadata_changed = self.check_attr_changed(orig_crawl_config, update, "name")
|
metadata_changed = self.check_attr_changed(orig_crawl_config, update, "name")
|
||||||
|
metadata_changed = metadata_changed or self.check_attr_changed(
|
||||||
|
orig_crawl_config, update, "description"
|
||||||
|
)
|
||||||
metadata_changed = metadata_changed or (
|
metadata_changed = metadata_changed or (
|
||||||
update.tags is not None
|
update.tags is not None
|
||||||
and ",".join(orig_crawl_config.tags) != ",".join(update.tags)
|
and ",".join(orig_crawl_config.tags) != ",".join(update.tags)
|
||||||
|
@ -94,6 +94,7 @@ class CrawlOut(Crawl):
|
|||||||
|
|
||||||
userName: Optional[str]
|
userName: Optional[str]
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
|
description: Optional[str]
|
||||||
profileName: Optional[str]
|
profileName: Optional[str]
|
||||||
resources: Optional[List[CrawlFileOut]] = []
|
resources: Optional[List[CrawlFileOut]] = []
|
||||||
firstSeed: Optional[str]
|
firstSeed: Optional[str]
|
||||||
@ -112,6 +113,7 @@ class ListCrawlOut(BaseMongoModel):
|
|||||||
oid: UUID4
|
oid: UUID4
|
||||||
cid: UUID4
|
cid: UUID4
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
|
description: Optional[str]
|
||||||
|
|
||||||
manual: Optional[bool]
|
manual: Optional[bool]
|
||||||
|
|
||||||
@ -318,6 +320,8 @@ class CrawlOps:
|
|||||||
if not crawl.name:
|
if not crawl.name:
|
||||||
crawl.name = config.name
|
crawl.name = config.name
|
||||||
|
|
||||||
|
crawl.description = config.description
|
||||||
|
|
||||||
if config.config.seeds:
|
if config.config.seeds:
|
||||||
first_seed = config.config.seeds[0]
|
first_seed = config.config.seeds[0]
|
||||||
if isinstance(first_seed, HttpUrl):
|
if isinstance(first_seed, HttpUrl):
|
||||||
|
@ -81,6 +81,7 @@ def admin_crawl_id(admin_auth_headers, default_org_id):
|
|||||||
crawl_data = {
|
crawl_data = {
|
||||||
"runNow": True,
|
"runNow": True,
|
||||||
"name": "Admin Test Crawl",
|
"name": "Admin Test Crawl",
|
||||||
|
"description": "Admin Test Crawl description",
|
||||||
"tags": ["wr-test-1", "wr-test-2"],
|
"tags": ["wr-test-1", "wr-test-2"],
|
||||||
"config": {
|
"config": {
|
||||||
"seeds": ["https://webrecorder.net/"],
|
"seeds": ["https://webrecorder.net/"],
|
||||||
|
@ -5,6 +5,7 @@ from .conftest import API_PREFIX
|
|||||||
|
|
||||||
cid = None
|
cid = None
|
||||||
UPDATED_NAME = "Updated name"
|
UPDATED_NAME = "Updated name"
|
||||||
|
UPDATED_DESCRIPTION = "Updated description"
|
||||||
UPDATED_TAGS = ["tag3", "tag4"]
|
UPDATED_TAGS = ["tag3", "tag4"]
|
||||||
|
|
||||||
|
|
||||||
@ -37,12 +38,31 @@ def test_update_name_only(crawler_auth_headers, default_org_id):
|
|||||||
assert data["settings_changed"] == False
|
assert data["settings_changed"] == False
|
||||||
|
|
||||||
|
|
||||||
def test_update_crawl_config_name_and_tags(crawler_auth_headers, default_org_id):
|
def test_update_desription_only(crawler_auth_headers, default_org_id):
|
||||||
|
# update description only
|
||||||
|
r = requests.patch(
|
||||||
|
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{cid}/",
|
||||||
|
headers=crawler_auth_headers,
|
||||||
|
json={"description": "updated description"},
|
||||||
|
)
|
||||||
|
assert r.status_code == 200
|
||||||
|
|
||||||
|
data = r.json()
|
||||||
|
assert data["success"]
|
||||||
|
assert data["metadata_changed"] == True
|
||||||
|
assert data["settings_changed"] == False
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_crawl_config_metadata(crawler_auth_headers, default_org_id):
|
||||||
# Update crawl config
|
# Update crawl config
|
||||||
r = requests.patch(
|
r = requests.patch(
|
||||||
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{cid}/",
|
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{cid}/",
|
||||||
headers=crawler_auth_headers,
|
headers=crawler_auth_headers,
|
||||||
json={"name": UPDATED_NAME, "tags": UPDATED_TAGS},
|
json={
|
||||||
|
"name": UPDATED_NAME,
|
||||||
|
"description": UPDATED_DESCRIPTION,
|
||||||
|
"tags": UPDATED_TAGS,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
|
|
||||||
@ -62,6 +82,7 @@ def test_verify_update(crawler_auth_headers, default_org_id):
|
|||||||
|
|
||||||
data = r.json()
|
data = r.json()
|
||||||
assert data["name"] == UPDATED_NAME
|
assert data["name"] == UPDATED_NAME
|
||||||
|
assert data["description"] == UPDATED_DESCRIPTION
|
||||||
assert sorted(data["tags"]) == sorted(UPDATED_TAGS)
|
assert sorted(data["tags"]) == sorted(UPDATED_TAGS)
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ def test_crawl_info(admin_auth_headers, default_org_id, admin_crawl_id):
|
|||||||
)
|
)
|
||||||
data = r.json()
|
data = r.json()
|
||||||
assert data["fileSize"] == wacz_size
|
assert data["fileSize"] == wacz_size
|
||||||
|
assert data["description"] == "Admin Test Crawl description"
|
||||||
|
|
||||||
|
|
||||||
def test_crawls_include_seed_info(admin_auth_headers, default_org_id, admin_crawl_id):
|
def test_crawls_include_seed_info(admin_auth_headers, default_org_id, admin_crawl_id):
|
||||||
|
Loading…
Reference in New Issue
Block a user