browsertrix/backend/test_nightly/test_crawlconfig_crawl_stats.py

85 lines
2.6 KiB
Python

import requests
from .conftest import API_PREFIX
def test_crawlconfig_crawl_stats(admin_auth_headers, default_org_id, crawl_config_info):
crawl_config_id, crawl_id, second_crawl_id = crawl_config_info
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{crawl_id}",
headers=admin_auth_headers,
)
assert r.status_code == 200
data = r.json()
first_crawl_finished = data["finished"]
assert first_crawl_finished
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{second_crawl_id}",
headers=admin_auth_headers,
)
assert r.status_code == 200
data = r.json()
second_crawl_finished = data["finished"]
assert second_crawl_finished
# Verify crawl stats from /crawlconfigs
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{crawl_config_id}",
headers=admin_auth_headers,
)
assert r.status_code == 200
data = r.json()
assert data["crawlAttemptCount"] == 2
assert data["crawlCount"] == 2
assert data["lastCrawlId"] == second_crawl_id
assert data["lastCrawlState"] == "complete"
assert data["lastCrawlTime"] == second_crawl_finished
# Delete second crawl
r = requests.post(
f"{API_PREFIX}/orgs/{default_org_id}/crawls/delete",
headers=admin_auth_headers,
json={"crawl_ids": [second_crawl_id]},
)
assert r.status_code == 200
data = r.json()
assert data["deleted"]
# Verify crawl stats from /crawlconfigs
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{crawl_config_id}",
headers=admin_auth_headers,
)
assert r.status_code == 200
data = r.json()
assert data["crawlAttemptCount"] == 2
assert data["crawlCount"] == 1
assert data["lastCrawlId"] == first_crawl_id
assert data["lastCrawlState"] == "complete"
assert data["lastCrawlTime"] == first_crawl_finished
# Delete first crawl
r = requests.post(
f"{API_PREFIX}/orgs/{default_org_id}/crawls/delete",
headers=admin_auth_headers,
json={"crawl_ids": [crawl_id]},
)
assert r.status_code == 200
data = r.json()
assert data["deleted"]
# Verify crawl stats from /crawlconfigs
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/{crawl_config_id}",
headers=admin_auth_headers,
)
assert r.status_code == 200
data = r.json()
assert data["crawlAttemptCount"] == 2
assert data["crawlCount"] == 0
assert not data["lastCrawlId"]
assert not data["lastCrawlState"]
assert not data["lastCrawlTime"]