From f6712d9d0e6eb25b3de147163f5b37c891cbac5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IT=E7=8B=97?= Date: Wed, 22 Jul 2026 11:02:11 +0800 Subject: [PATCH] test(auth): smoke test for /api/auth/users + reset-password --- scripts/test_reset.py | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts/test_reset.py diff --git a/scripts/test_reset.py b/scripts/test_reset.py new file mode 100644 index 0000000..9933529 --- /dev/null +++ b/scripts/test_reset.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +"""Smoke test: /api/auth/users + /api/auth/reset-password.""" +import json +import sys +import urllib.request + +BASE = "http://localhost:8000" + +def req(method, path, body=None, token=None): + headers = {"Content-Type": "application/json"} + if token: + headers["Authorization"] = f"Bearer {token}" + data = json.dumps(body).encode() if body else None + r = urllib.request.Request(f"{BASE}{path}", data=data, headers=headers, method=method) + try: + with urllib.request.urlopen(r, timeout=10) as resp: + return resp.status, json.loads(resp.read().decode() or "{}") + except urllib.error.HTTPError as e: + return e.code, json.loads(e.read().decode() or "{}") + +# 1. Login +code, body = req("POST", "/api/auth/login", {"email": "admin@aars.hk", "password": "admin123"}) +if code != 200: + print(f"LOGIN FAILED: {code} {body}") + sys.exit(1) +token = body["access_token"] +print(f"✅ login ok, token={token[:30]}...") + +# 2. List users +code, body = req("GET", "/api/auth/users", token=token) +print(f"\n--- GET /api/auth/users (code={code}) ---") +print(json.dumps(body, indent=2, ensure_ascii=False)) + +# 3. Reset password (no actual change, just smoke test) +code, body = req("POST", "/api/auth/reset-password", + {"email": "admin@aars.hk", "new_password": "admin123"}, + token=token) +print(f"\n--- POST /api/auth/reset-password (code={code}) ---") +print(json.dumps(body, indent=2, ensure_ascii=False)) + +# 4. Verify login still works +code, body = req("POST", "/api/auth/login", {"email": "admin@aars.hk", "password": "admin123"}) +print(f"\n--- verify login (code={code}) ---") +if code == 200: + print("✅ login still works after reset") +else: + print(f"❌ login broken: {body}")