ticket #106 attempt 1

This commit is contained in:
Typosaurus
2026-07-23 02:33:42 +00:00
parent ad1736ebf1
commit a8ed5b690f
2 changed files with 57 additions and 0 deletions
+47
View File
@@ -89,6 +89,53 @@ def test_run_clamps_max_pages_above_cap(app_server):
_clear_seo_jobs()
def test_run_rejects_malformed_scheme(app_server):
r = requests.post(
f"{BASE_URL}/tools/seo/run",
headers=_json_headers(),
data={"url": "ahttps://devplace.net/sitem", "mode": "url"},
allow_redirects=False,
)
assert r.status_code in (400, 422), r.text
def test_run_rejects_relative_path(app_server):
r = requests.post(
f"{BASE_URL}/tools/seo/run",
headers=_json_headers(),
data={"url": "/feed", "mode": "url"},
allow_redirects=False,
)
assert r.status_code in (400, 422), r.text
def test_run_normalizes_missing_scheme(app_server):
try:
r = requests.post(
f"{BASE_URL}/tools/seo/run",
headers=_json_headers(),
data={"url": "example.com", "mode": "url", "max_pages": "5"},
)
assert r.status_code == 200, r.text
uid = r.json()["uid"]
refresh_snapshot()
job = queue.get_job(uid)
assert job is not None
assert job["payload"]["url"] == "https://example.com"
finally:
_clear_seo_jobs()
def test_run_rejects_non_http_scheme(app_server):
r = requests.post(
f"{BASE_URL}/tools/seo/run",
headers=_json_headers(),
data={"url": "ftp://example.com", "mode": "url"},
allow_redirects=False,
)
assert r.status_code in (400, 422), r.text
def test_run_enforces_one_active_job_per_owner(app_server):
try:
first = requests.post(