Aurator_Coaching / test_api.py
akpande2's picture
Update test_api.py
003e10f verified
"""
Quick API Test Script
Test the FastAPI server locally or on HF
"""
import requests
import sys
# Change this to your HF Space URL or local
#API_URL = "akpande2/Aurator_Coaching" # For local testing
API_URL = "https://akpande2-aurator-coaching.hf.space" # For HF testing
def test_health():
"""Test health endpoint"""
print("Testing /api/health...")
response = requests.get(f"{API_URL}/api/health")
print(f"Status: {response.status_code}")
print(f"Response: {response.json()}\n")
return response.status_code == 200
def test_analyze(audio_file_path):
"""Test analyze endpoint"""
print(f"Testing /api/analyze with {audio_file_path}...")
with open(audio_file_path, 'rb') as f:
files = {'audio_file': f}
data = {'avatar_gender': 'male'}
response = requests.post(
f"{API_URL}/api/analyze",
files=files,
data=data,
timeout=60
)
print(f"Status: {response.status_code}")
if response.status_code == 200:
result = response.json()
print(f"Success: {result['success']}")
print(f"Overall Score: {result['data']['overall_score']}")
print(f"Processing Time: {result['processing_time_ms']}ms")
print(f"Tips Count: {len(result['data']['coaching']['tips'])}")
print(f"Tips Audio: {result['data']['coaching']['tips_audio_url']}")
print(f"Improved Audio: {result['data']['coaching']['improved_audio_url']}")
else:
print(f"Error: {response.text}")
return response.status_code == 200
if __name__ == "__main__":
print("="*60)
print("API TEST SCRIPT")
print("="*60 + "\n")
# Test health
if not test_health():
print("❌ Health check failed!")
sys.exit(1)
print("✅ Health check passed!\n")
# Test analyze (provide your audio file)
if len(sys.argv) > 1:
audio_file = sys.argv[1]
if test_analyze(audio_file):
print("\n✅ Analysis test passed!")
else:
print("\n❌ Analysis test failed!")
else:
print("ℹ️ To test analysis: python test_api.py your_audio.wav")