#!/usr/bin/env python3 """ Test script to verify configuration and CCXT format """ import sys import os from pathlib import Path # Add the project root and src directory to the path project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) sys.path.insert(0, str(project_root / 'src')) from config import Config def test_config(): """Test configuration setup.""" print("๐Ÿงช Testing Configuration Setup") print("=" * 50) try: # Test basic configuration print("๐Ÿ” Checking environment variables...") print(f"๐Ÿ“‚ Current directory: {os.getcwd()}") print(f"๐Ÿ“„ .env file exists: {os.path.exists('.env')}") print() # Show raw environment variables print("๐Ÿ”‘ Raw Environment Variables:") print(f" HYPERLIQUID_PRIVATE_KEY: {'โœ… Set' if os.getenv('HYPERLIQUID_PRIVATE_KEY') else 'โŒ Not Set'}") print(f" HYPERLIQUID_SECRET_KEY: {'โœ… Set' if os.getenv('HYPERLIQUID_SECRET_KEY') else 'โŒ Not Set'}") print(f" HYPERLIQUID_TESTNET: {os.getenv('HYPERLIQUID_TESTNET', 'NOT SET')}") print(f" TELEGRAM_BOT_TOKEN: {'โœ… Set' if os.getenv('TELEGRAM_BOT_TOKEN') else 'โŒ Not Set'}") print(f" TELEGRAM_CHAT_ID: {'โœ… Set' if os.getenv('TELEGRAM_CHAT_ID') else 'โŒ Not Set'}") print(f" TELEGRAM_ENABLED: {os.getenv('TELEGRAM_ENABLED', 'NOT SET')}") print() # Test Config class print("โš™๏ธ Config Class Values:") print(f" HYPERLIQUID_PRIVATE_KEY: {'โœ… Set (' + Config.HYPERLIQUID_PRIVATE_KEY[:10] + '...)' if Config.HYPERLIQUID_PRIVATE_KEY else 'โŒ Not Set'}") print(f" HYPERLIQUID_SECRET_KEY: {'โœ… Set (' + Config.HYPERLIQUID_SECRET_KEY[:10] + '...)' if Config.HYPERLIQUID_SECRET_KEY else 'โŒ Not Set'}") print(f" HYPERLIQUID_TESTNET: {Config.HYPERLIQUID_TESTNET}") print(f" TELEGRAM_ENABLED: {Config.TELEGRAM_ENABLED}") print() # Test CCXT configuration format print("๐Ÿ”ง CCXT Configuration Format:") ccxt_config = Config.get_hyperliquid_config() for key, value in ccxt_config.items(): if key in ['apiKey', 'secret', 'private_key'] and value: print(f" {key}: {value[:10]}...") else: print(f" {key}: {value}") print() # Test validation print("โœ… Configuration Validation:") is_valid = Config.validate() if is_valid: print("๐ŸŽ‰ Configuration is VALID!") # Show the exact format that will be sent to HyperliquidSync final_config = { 'apiKey': Config.HYPERLIQUID_PRIVATE_KEY, 'testnet': Config.HYPERLIQUID_TESTNET, 'sandbox': Config.HYPERLIQUID_TESTNET, } if Config.HYPERLIQUID_SECRET_KEY: final_config['secret'] = Config.HYPERLIQUID_SECRET_KEY print("\n๐Ÿ“‹ Final CCXT Config (masked):") for key, value in final_config.items(): if key in ['apiKey', 'secret'] and value: print(f" '{key}': '{value[:10]}...'") else: print(f" '{key}': {value}") return True else: print("โŒ Configuration is INVALID!") return False except Exception as e: print(f"๐Ÿ’ฅ Configuration test failed: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": success = test_config() if success: print("\n๐ŸŽ‰ Config test PASSED!") sys.exit(0) else: print("\n๐Ÿ’ฅ Config test FAILED!") sys.exit(1)