Files
pezkuwi-mobile-app/auth_test.py
T
2025-11-08 14:59:03 +00:00

128 lines
3.9 KiB
Python

#!/usr/bin/env python3
"""
Simple Authentication Test for PezkuwiChain
Tests the fixed authentication endpoints
"""
import requests
import json
import time
from datetime import datetime
BACKEND_URL = "https://digital-kurdistan.preview.emergentagent.com/api"
def test_auth_flow():
"""Test complete authentication flow"""
print("🔐 Testing PezkuwiChain Authentication Flow")
print(f"Backend URL: {BACKEND_URL}")
print("=" * 60)
# Generate unique email
timestamp = int(time.time())
test_email = f"pezkuwi_test_{timestamp}@gmail.com"
test_password = "SecurePass123!"
print(f"Test Email: {test_email}")
print()
# Test 1: Signup
print("1️⃣ Testing Signup...")
signup_data = {
"email": test_email,
"password": test_password,
"first_name": "Aram",
"last_name": "Kurdistan",
"phone": "+964750123456",
"referral_code": "REF001",
"language": "ku"
}
try:
response = requests.post(f"{BACKEND_URL}/auth/signup", json=signup_data, timeout=30)
print(f"Status: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("✅ Signup SUCCESS")
print(f"User ID: {data.get('user_id', 'N/A')}")
print(f"Email: {data.get('email', 'N/A')}")
print(f"First Name: {data.get('first_name', 'N/A')}")
print(f"Last Name: {data.get('last_name', 'N/A')}")
print(f"Has Access Token: {'Yes' if data.get('access_token') else 'No'}")
print(f"Has Refresh Token: {'Yes' if data.get('refresh_token') else 'No'}")
user_id = data.get('user_id')
else:
print(f"❌ Signup FAILED: {response.status_code}")
print(f"Error: {response.text}")
return False
except Exception as e:
print(f"❌ Signup ERROR: {str(e)}")
return False
print()
# Test 2: Signin
print("2️⃣ Testing Signin...")
signin_data = {
"email": test_email,
"password": test_password
}
try:
response = requests.post(f"{BACKEND_URL}/auth/signin", json=signin_data, timeout=30)
print(f"Status: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("✅ Signin SUCCESS")
print(f"User ID: {data.get('user_id', 'N/A')}")
print(f"Email: {data.get('email', 'N/A')}")
print(f"Has Access Token: {'Yes' if data.get('access_token') else 'No'}")
else:
print(f"❌ Signin FAILED: {response.status_code}")
print(f"Error: {response.text}")
return False
except Exception as e:
print(f"❌ Signin ERROR: {str(e)}")
return False
print()
# Test 3: Get User Profile
print("3️⃣ Testing Get User Profile...")
try:
response = requests.get(f"{BACKEND_URL}/auth/user/{user_id}", timeout=30)
print(f"Status: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("✅ Get Profile SUCCESS")
print(f"Profile Data: {json.dumps(data, indent=2)}")
else:
print(f"❌ Get Profile FAILED: {response.status_code}")
print(f"Error: {response.text}")
return False
except Exception as e:
print(f"❌ Get Profile ERROR: {str(e)}")
return False
print()
print("🎉 ALL AUTHENTICATION TESTS PASSED!")
return True
if __name__ == "__main__":
success = test_auth_flow()
if not success:
print("❌ Authentication tests failed")
exit(1)
else:
print("✅ Authentication system working correctly")
exit(0)