Spaces:
Sleeping
Sleeping
| import os | |
| import sys | |
| import requests | |
| from dotenv import load_dotenv | |
| def test_api_keys(): | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| errors = [] | |
| # Test Google Custom Search API | |
| google_api_key = os.getenv('GOOGLE_API_KEY') | |
| google_cx = os.getenv('GOOGLE_CX') | |
| if not google_api_key or google_api_key == 'None': | |
| errors.append("GOOGLE_API_KEY is missing or set to 'None'") | |
| if not google_cx or google_cx == 'None': | |
| errors.append("GOOGLE_CX is missing or set to 'None'") | |
| if google_api_key and google_api_key != 'None' and google_cx and google_cx != 'None': | |
| try: | |
| google_url = f"https://www.googleapis.com/customsearch/v1?q=test&key={google_api_key}&cx={google_cx}&num=1" | |
| response = requests.get(google_url, timeout=10) | |
| if response.status_code != 200: | |
| errors.append(f"Google Custom Search API test failed: {response.status_code} - {response.text}") | |
| else: | |
| print("✅ Google Custom Search API key is valid") | |
| except Exception as e: | |
| errors.append(f"Google Custom Search API test error: {str(e)}") | |
| # Test NewsAPI | |
| news_api_key = os.getenv('NEWS_API_KEY') | |
| if not news_api_key or news_api_key == 'None': | |
| errors.append("NEWS_API_KEY is missing or set to 'None'") | |
| elif news_api_key != 'None': | |
| try: | |
| news_url = f"https://newsapi.org/v2/everything?q=test&apiKey={news_api_key}&pageSize=1" | |
| response = requests.get(news_url, timeout=10) | |
| if response.status_code != 200: | |
| errors.append(f"NewsAPI test failed: {response.status_code} - {response.text}") | |
| else: | |
| print("✅ NewsAPI key is valid") | |
| except Exception as e: | |
| errors.append(f"NewsAPI test error: {str(e)}") | |
| # Test FinHub API | |
| finhub_api_key = os.getenv('FINHUB_API_KEY') | |
| if not finhub_api_key or finhub_api_key == 'None': | |
| errors.append("FINHUB_API_KEY is missing or set to 'None'") | |
| elif finhub_api_key != 'None': | |
| try: | |
| finhub_url = f"https://finnhub.io/api/v1/news?category=general&token={finhub_api_key}" | |
| response = requests.get(finhub_url, timeout=10) | |
| if response.status_code != 200: | |
| errors.append(f"FinHub API test failed: {response.status_code} - {response.text}") | |
| else: | |
| print("✅ FinHub API key is valid") | |
| except Exception as e: | |
| errors.append(f"FinHub API test error: {str(e)}") | |
| # Report errors if any | |
| if errors: | |
| print("\n❌ API Key Tests Failed:") | |
| for error in errors: | |
| print(f" - {error}") | |
| print("\nPlease check your .env file and ensure all API keys are properly set.") | |
| sys.exit(1) | |
| else: | |
| print("\n✅ All API keys are valid and working!") | |
| return True | |
| if __name__ == "__main__": | |
| print("Testing API keys from .env file...") | |
| test_api_keys() |