chore: reorganize test files into domain-specific subdirectories under tests/

Split the monolithic test directory into three tiers (unit, api, e2e) with a path-mirroring directory structure. Added corresponding Makefile targets (test-unit, test-api, test-e2e) and updated all documentation references (CLAUDE.md, README.md, testing-cicd.html, testing-framework.html, testing-make.html) to reflect the new layout and naming conventions.
This commit is contained in:
2026-06-13 14:32:33 +00:00
parent 014c4c6bb3
commit 43f4011005
268 changed files with 20634 additions and 9206 deletions
View File
+46
View File
@@ -0,0 +1,46 @@
# retoor <retoor@molodetz.nl>
import time
import requests
from tests.conftest import BASE_URL
from devplacepy.database import get_table
JSON_content_negotiation = {"Accept": "application/json"}
_counter_content_negotiation = [0]
def _session_content_negotiation(password="secret123"):
_counter_content_negotiation[0] += 1
name = f"cn{int(time.time() * 1000)}{_counter_content_negotiation[0]}"
s = requests.Session()
s.post(
f"{BASE_URL}/auth/signup",
data={
"username": name,
"email": f"{name}@t.dev",
"password": password,
"confirm_password": password,
},
allow_redirects=True,
)
return s, name
PUBLIC_PAGES = ["/feed", "/projects", "/gists", "/news", "/leaderboard", "/bugs"]
def test_public_pages_serve_json_and_html(app_server):
for path in PUBLIC_PAGES:
rj = requests.get(f"{BASE_URL}{path}", headers=JSON_content_negotiation)
assert rj.status_code == 200, path
assert rj.headers["content-type"].startswith("application/json"), path
assert isinstance(rj.json(), dict), path
rh = requests.get(f"{BASE_URL}{path}")
assert rh.status_code == 200, path
assert rh.headers["content-type"].startswith("text/html"), path
def test_authed_pages_serve_json_and_html(app_server):
s, name = _session_content_negotiation()
for path in ["/messages", "/notifications", "/bookmarks/saved", f"/profile/{name}"]:
rj = s.get(f"{BASE_URL}{path}", headers=JSON_content_negotiation)
assert rj.status_code == 200, path
assert rj.headers["content-type"].startswith("application/json"), path
rh = s.get(f"{BASE_URL}{path}")
assert rh.status_code == 200, path
assert rh.headers["content-type"].startswith("text/html"), path