ishingiro / tests /test_simple_admin.py
IZERE HIRWA Roger
add lg files
eeacc46
#!/usr/bin/env python3
"""
Simple Admin Dashboard Test
Tests the professional management functionality
"""
import requests
import json
# Configuration
API_BASE_URL = "https://prodevroger-ishingiro.hf.space"
ADMIN_EMAIL = "eliasfeza@gmail.com"
ADMIN_PASSWORD = "EliasFeza@12301"
def test_admin_login():
"""Test admin login"""
print("Testing admin login...")
try:
response = requests.post(f"{API_BASE_URL}/admin/login", json={
"email": ADMIN_EMAIL,
"password": ADMIN_PASSWORD
})
if response.status_code == 200:
data = response.json()
if data.get('success'):
print("SUCCESS: Admin login successful")
return True
else:
print(f"FAILED: Admin login failed: {data.get('error')}")
return False
else:
print(f"FAILED: Admin login failed: {response.status_code}")
return False
except Exception as e:
print(f"ERROR: Admin login error: {e}")
return False
def test_add_professional():
"""Test adding a new professional"""
print("Testing add professional...")
professional_data = {
"username": "test_professional",
"password": "password123",
"first_name": "Test",
"last_name": "Professional",
"email": "test.professional@example.com",
"phone": "+250788123456",
"specialization": "counselor",
"expertise_areas": ["depression", "anxiety"],
"experience_years": 5,
"district": "Gasabo",
"consultation_fee": 50000,
"bio": "Test professional",
"languages": ["english"],
"qualifications": [],
"availability_schedule": {}
}
try:
response = requests.post(f"{API_BASE_URL}/admin/professionals", json=professional_data)
if response.status_code == 200:
data = response.json()
if data.get('success'):
print("SUCCESS: Add professional successful")
return data.get('professional', {}).get('id')
else:
print(f"FAILED: Add professional failed: {data.get('error')}")
return None
else:
print(f"FAILED: Add professional failed: {response.status_code}")
return None
except Exception as e:
print(f"ERROR: Add professional error: {e}")
return None
def test_get_professionals():
"""Test getting all professionals"""
print("Testing get professionals...")
try:
response = requests.get(f"{API_BASE_URL}/admin/professionals")
if response.status_code == 200:
data = response.json()
if data.get('professionals'):
print(f"SUCCESS: Get professionals successful - found {len(data['professionals'])} professionals")
return True
else:
print("SUCCESS: Get professionals successful - no professionals found")
return True
else:
print(f"FAILED: Get professionals failed: {response.status_code}")
return False
except Exception as e:
print(f"ERROR: Get professionals error: {e}")
return False
def cleanup_test_data():
"""Clean up test data"""
print("Cleaning up test data...")
try:
response = requests.get(f"{API_BASE_URL}/admin/professionals")
if response.status_code == 200:
data = response.json()
professionals = data.get('professionals', [])
for prof in professionals:
if prof.get('username') == 'test_professional':
delete_response = requests.delete(f"{API_BASE_URL}/admin/professionals/{prof['id']}")
if delete_response.status_code == 200:
print(f"SUCCESS: Cleaned up {prof['username']}")
else:
print(f"FAILED: Failed to clean up {prof['username']}")
except Exception as e:
print(f"ERROR: Cleanup error: {e}")
def main():
"""Run simple admin dashboard test"""
print("=" * 50)
print("ADMIN DASHBOARD TEST")
print("=" * 50)
# Test admin login
login_success = test_admin_login()
# Test get professionals
get_success = test_get_professionals()
# Test add professional
professional_id = test_add_professional()
# Cleanup
cleanup_test_data()
print("\n" + "=" * 50)
print("TEST RESULTS:")
print(f"Login: {'PASS' if login_success else 'FAIL'}")
print(f"Get Professionals: {'PASS' if get_success else 'FAIL'}")
print(f"Add Professional: {'PASS' if professional_id else 'FAIL'}")
if all([login_success, get_success, professional_id]):
print("\nALL TESTS PASSED! Backend is working correctly.")
else:
print("\nSOME TESTS FAILED. Check the backend API.")
if __name__ == "__main__":
main()