File size: 2,509 Bytes
f35bff2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#!/usr/bin/env python3
"""
Test script to verify FRED API key functionality
"""
from fredapi import Fred
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from config.settings import FRED_API_KEY
def test_api_connection():
"""Test the FRED API connection with the provided key."""
print("Testing FRED API connection...")
try:
# Initialize FRED client
fred = Fred(api_key=FRED_API_KEY)
# Test with a simple series (GDP)
print("Fetching GDP data as a test...")
gdp_data = fred.get_series('GDP', start='2023-01-01', end='2023-12-31')
if not gdp_data.empty:
print("β API connection successful!")
print(f"β Retrieved {len(gdp_data)} GDP observations")
print(f"β Latest GDP value: ${gdp_data.iloc[-1]:,.2f} billion")
print(f"β Date range: {gdp_data.index.min()} to {gdp_data.index.max()}")
return True
else:
print("β No data retrieved")
return False
except Exception as e:
print(f"β API connection failed: {e}")
return False
def test_series_info():
"""Test getting series information."""
print("\nTesting series information retrieval...")
try:
fred = Fred(api_key=FRED_API_KEY)
# Test getting info for GDP
series_info = fred.get_series_info('GDP')
print("β Series information retrieved successfully!")
print(f" Title: {series_info.title}")
print(f" Units: {series_info.units}")
print(f" Frequency: {series_info.frequency}")
print(f" Last Updated: {series_info.last_updated}")
return True
except Exception as e:
print(f"β Failed to get series info: {e}")
return False
def main():
"""Run API tests."""
print("FRED API Key Test")
print("=" * 30)
print(f"API Key: {FRED_API_KEY[:8]}...")
print()
# Test connection
connection_ok = test_api_connection()
# Test series info
info_ok = test_series_info()
print("\n" + "=" * 30)
if connection_ok and info_ok:
print("β All tests passed! Your API key is working correctly.")
print("You can now use the FRED data collector tool.")
else:
print("β Some tests failed. Please check your API key.")
return connection_ok and info_ok
if __name__ == "__main__":
main() |