Skip to content

Commit 902a347

Browse files
committed
Add/improve nightly tests for error and behavior log endpoints
1 parent 25bd787 commit 902a347

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import time
2+
3+
import requests
4+
import pytest
5+
6+
from .conftest import API_PREFIX
7+
8+
9+
@pytest.fixture(scope="session")
10+
def behavior_log_crawl_id(admin_auth_headers, default_org_id):
11+
crawl_data = {
12+
"runNow": True,
13+
"name": "Crawl with behavior logs",
14+
"config": {
15+
"seeds": [
16+
{"url": "https://x.com/webrecorder_io"},
17+
],
18+
"scopeType": "page",
19+
"limit": 1,
20+
},
21+
}
22+
r = requests.post(
23+
f"{API_PREFIX}/orgs/{default_org_id}/crawlconfigs/",
24+
headers=admin_auth_headers,
25+
json=crawl_data,
26+
)
27+
data = r.json()
28+
29+
crawl_id = data["run_now_job"]
30+
31+
while True:
32+
r = requests.get(
33+
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{crawl_id}/replay.json",
34+
headers=admin_auth_headers,
35+
)
36+
data = r.json()
37+
if data["state"] in ("failed", "complete"):
38+
return crawl_id
39+
time.sleep(5)
40+
41+
42+
@pytest.mark.timeout(1200)
43+
def test_get_crawl_behavior_logs(
44+
admin_auth_headers, default_org_id, behavior_log_crawl_id
45+
):
46+
r = requests.get(
47+
f"{API_PREFIX}/orgs/{default_org_id}/crawls/{behavior_log_crawl_id}/behaviorLogs",
48+
headers=admin_auth_headers,
49+
)
50+
assert r.status_code == 200
51+
data = r.json()
52+
assert data["total"] > 0
53+
assert data["items"]
54+
55+
for item in data["items"]:
56+
assert item["id"]
57+
assert item["crawlId"] == behavior_log_crawl_id
58+
assert item["oid"] == default_org_id
59+
assert item["qaRunId"] is None
60+
assert item["timestamp"]
61+
assert item["logLevel"]
62+
assert item["context"] in ("behavior", "behaviorScript", "behaviorScriptCustom")
63+
assert item["message"]
64+
assert item.get("details") or item.get("details") is None

backend/test_nightly/test_crawl_errors.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,14 @@ def test_get_crawl_errors(admin_auth_headers, default_org_id, error_crawl_id):
1414
data = r.json()
1515
assert data["total"] > 0
1616
assert data["items"]
17+
18+
for item in data["items"]:
19+
assert item["id"]
20+
assert item["crawlId"] == error_crawl_id
21+
assert item["oid"] == default_org_id
22+
assert item["qaRunId"] is None
23+
assert item["timestamp"]
24+
assert item["logLevel"] in ("error", "fatal")
25+
assert item["context"]
26+
assert item["message"]
27+
assert item.get("details") or item.get("details") is None

0 commit comments

Comments
 (0)