abiramavarshini/rag-backend
0
1import requests2import json3 4BASE_URL = "http://localhost:8000"5results = []6 7def log(test_name, status, response_code, response_body):8 result = f"{test_name}: {status} (HTTP {response_code})"9 print(result)10 results.append({"test": test_name, "status": status, "code": response_code, "body": response_body})11 12# Test 1: Health13r = requests.get(f"{BASE_URL}/health")14log("GET /health", "PASS" if r.status_code == 200 else "FAIL", r.status_code, r.text)15 16# Test 2: Signup17r = requests.post(f"{BASE_URL}/auth/signup", json={"email": "finaltest@example.com", "password": "password123"})18log("POST /auth/signup", "PASS" if r.status_code in [200, 400] else "FAIL", r.status_code, r.text)19 20# Test 3: Login21r = requests.post(f"{BASE_URL}/auth/login", json={"email": "finaltest@example.com", "password": "password123"})22token = ""23if r.status_code == 200:24 token = r.json().get("access_token", "")25log("POST /auth/login", "PASS" if r.status_code == 200 and token else "FAIL", r.status_code, r.text[:100])26 27# Test 4: /auth/me without token28r = requests.get(f"{BASE_URL}/auth/me")29log("GET /auth/me (no token)", "PASS" if r.status_code in [401, 403] else "FAIL", r.status_code, r.text)30 31# Test 5: /auth/me with valid token32r = requests.get(f"{BASE_URL}/auth/me", headers={"Authorization": f"Bearer {token}"})33log("GET /auth/me (valid token)", "PASS" if r.status_code == 200 else "FAIL", r.status_code, r.text)34 35# Test 6: /auth/me with invalid token36r = requests.get(f"{BASE_URL}/auth/me", headers={"Authorization": "Bearer invalidtoken"})37log("GET /auth/me (invalid token)", "PASS" if r.status_code == 401 else "FAIL", r.status_code, r.text)38 39# Test 7: CORS40r = requests.options(f"{BASE_URL}/health", headers={"Origin": "http://localhost:3000", "Access-Control-Request-Method": "GET"})41cors_headers = {k: v for k, v in r.headers.items() if "access-control" in k.lower()}42log("OPTIONS /health (CORS)", "PASS" if cors_headers else "FAIL", r.status_code, str(cors_headers))43 44# Summary45print("\n" + "=" * 40)46passed = sum(1 for r in results if r["status"] == "PASS")47print(f"SUMMARY: {passed}/{len(results)} tests passed")48 49# Write detailed results50with open("test_output.json", "w") as f:51 json.dump(results, f, indent=2)52print("Detailed results saved to test_output.json")53 