#!/usr/bin/env python3 """Test script to verify TradingAgents setup and API connectivity""" import os import sys from dotenv import load_dotenv # Load environment variables load_dotenv() def check_api_keys(): """Check if required API keys are set""" print("šŸ” Checking API Keys...") alpha_vantage_key = os.getenv("ALPHA_VANTAGE_API_KEY") openai_key = os.getenv("OPENAI_API_KEY") status = {} if alpha_vantage_key and alpha_vantage_key != "alpha_vantage_api_key_placeholder": print("āœ… Alpha Vantage API Key: SET") status["alpha_vantage"] = True else: print("āŒ Alpha Vantage API Key: NOT SET or using placeholder") status["alpha_vantage"] = False if openai_key and openai_key != "openai_api_key_placeholder": print("āœ… OpenAI API Key: SET") status["openai"] = True else: print("āŒ OpenAI API Key: NOT SET or using placeholder") status["openai"] = False return status def test_imports(): """Test if all required packages can be imported""" print("\nšŸ” Testing Package Imports...") packages = [ "langchain_openai", "langchain_experimental", "pandas", "yfinance", "langgraph", "tradingagents" ] failed = [] for package in packages: try: __import__(package) print(f"āœ… {package}: OK") except ImportError as e: print(f"āŒ {package}: FAILED - {e}") failed.append(package) return len(failed) == 0 def test_alpha_vantage_connection(): """Test Alpha Vantage API connectivity""" print("\nšŸ” Testing Alpha Vantage API...") api_key = os.getenv("ALPHA_VANTAGE_API_KEY") if not api_key or api_key == "alpha_vantage_api_key_placeholder": print("ā­ļø Skipping Alpha Vantage test - API key not set") return False try: import requests # Test with a simple quote endpoint url = f"https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=AAPL&apikey={api_key}" response = requests.get(url, timeout=10) data = response.json() if "Global Quote" in data: print("āœ… Alpha Vantage API: Connected successfully") return True elif "Note" in data: print("āš ļø Alpha Vantage API: Rate limit reached") return True elif "Error Message" in data: print(f"āŒ Alpha Vantage API: {data['Error Message']}") return False else: print("āŒ Alpha Vantage API: Unexpected response") return False except Exception as e: print(f"āŒ Alpha Vantage API: Connection failed - {e}") return False def test_yfinance(): """Test yfinance data fetching""" print("\nšŸ” Testing yfinance...") try: import yfinance as yf ticker = yf.Ticker("AAPL") info = ticker.info if info and "symbol" in info: print("āœ… yfinance: Working correctly") return True else: print("āŒ yfinance: Failed to fetch data") return False except Exception as e: print(f"āŒ yfinance: Error - {e}") return False def main(): print("=" * 60) print("šŸš€ TradingAgents Setup Test") print("=" * 60) # Check API keys api_status = check_api_keys() # Test imports imports_ok = test_imports() # Test connections if keys are available if api_status["alpha_vantage"]: test_alpha_vantage_connection() test_yfinance() # Summary print("\n" + "=" * 60) print("šŸ“Š SUMMARY") print("=" * 60) if not api_status["openai"]: print("\nāš ļø IMPORTANT: You need to set your OpenAI API key!") print(" Either:") print(" 1. Add it to the .env file") print(" 2. Export it: export OPENAI_API_KEY='your-key-here'") if imports_ok and api_status["alpha_vantage"]: print("\nāœ… Basic setup is complete!") print("\nšŸ“ Next steps:") if not api_status["openai"]: print("1. Add your OpenAI API key") print("2. Run: python main.py") print(" OR") print(" python -m cli.main") else: print("1. Run: python main.py") print(" OR") print(" python -m cli.main") else: print("\nāŒ Setup incomplete. Please fix the issues above.") if __name__ == "__main__": main()