test_config.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/usr/bin/env python3
  2. """
  3. Test script to verify configuration and CCXT format
  4. """
  5. import sys
  6. import os
  7. from pathlib import Path
  8. # Add the project root and src directory to the path
  9. project_root = Path(__file__).parent.parent
  10. sys.path.insert(0, str(project_root))
  11. sys.path.insert(0, str(project_root / 'src'))
  12. from config import Config
  13. def test_config():
  14. """Test configuration setup."""
  15. print("🧪 Testing Configuration Setup")
  16. print("=" * 50)
  17. try:
  18. # Test basic configuration
  19. print("🔍 Checking environment variables...")
  20. print(f"📂 Current directory: {os.getcwd()}")
  21. print(f"📄 .env file exists: {os.path.exists('.env')}")
  22. print()
  23. # Show raw environment variables
  24. print("🔑 Raw Environment Variables:")
  25. print(f" HYPERLIQUID_PRIVATE_KEY: {'✅ Set' if os.getenv('HYPERLIQUID_PRIVATE_KEY') else '❌ Not Set'}")
  26. print(f" HYPERLIQUID_SECRET_KEY: {'✅ Set' if os.getenv('HYPERLIQUID_SECRET_KEY') else '❌ Not Set'}")
  27. print(f" HYPERLIQUID_TESTNET: {os.getenv('HYPERLIQUID_TESTNET', 'NOT SET')}")
  28. print(f" TELEGRAM_BOT_TOKEN: {'✅ Set' if os.getenv('TELEGRAM_BOT_TOKEN') else '❌ Not Set'}")
  29. print(f" TELEGRAM_CHAT_ID: {'✅ Set' if os.getenv('TELEGRAM_CHAT_ID') else '❌ Not Set'}")
  30. print(f" TELEGRAM_ENABLED: {os.getenv('TELEGRAM_ENABLED', 'NOT SET')}")
  31. print()
  32. # Test Config class
  33. print("⚙️ Config Class Values:")
  34. print(f" HYPERLIQUID_PRIVATE_KEY: {'✅ Set (' + Config.HYPERLIQUID_PRIVATE_KEY[:10] + '...)' if Config.HYPERLIQUID_PRIVATE_KEY else '❌ Not Set'}")
  35. print(f" HYPERLIQUID_SECRET_KEY: {'✅ Set (' + Config.HYPERLIQUID_SECRET_KEY[:10] + '...)' if Config.HYPERLIQUID_SECRET_KEY else '❌ Not Set'}")
  36. print(f" HYPERLIQUID_TESTNET: {Config.HYPERLIQUID_TESTNET}")
  37. print(f" TELEGRAM_ENABLED: {Config.TELEGRAM_ENABLED}")
  38. print()
  39. # Test CCXT configuration format
  40. print("🔧 CCXT Configuration Format:")
  41. ccxt_config = Config.get_hyperliquid_config()
  42. for key, value in ccxt_config.items():
  43. if key in ['apiKey', 'secret', 'private_key'] and value:
  44. print(f" {key}: {value[:10]}...")
  45. else:
  46. print(f" {key}: {value}")
  47. print()
  48. # Test validation
  49. print("✅ Configuration Validation:")
  50. is_valid = Config.validate()
  51. if is_valid:
  52. print("🎉 Configuration is VALID!")
  53. # Show the exact format that will be sent to HyperliquidSync
  54. final_config = {
  55. 'apiKey': Config.HYPERLIQUID_PRIVATE_KEY,
  56. 'testnet': Config.HYPERLIQUID_TESTNET,
  57. 'sandbox': Config.HYPERLIQUID_TESTNET,
  58. }
  59. if Config.HYPERLIQUID_SECRET_KEY:
  60. final_config['secret'] = Config.HYPERLIQUID_SECRET_KEY
  61. print("\n📋 Final CCXT Config (masked):")
  62. for key, value in final_config.items():
  63. if key in ['apiKey', 'secret'] and value:
  64. print(f" '{key}': '{value[:10]}...'")
  65. else:
  66. print(f" '{key}': {value}")
  67. return True
  68. else:
  69. print("❌ Configuration is INVALID!")
  70. return False
  71. except Exception as e:
  72. print(f"💥 Configuration test failed: {e}")
  73. import traceback
  74. traceback.print_exc()
  75. return False
  76. if __name__ == "__main__":
  77. success = test_config()
  78. if success:
  79. print("\n🎉 Config test PASSED!")
  80. sys.exit(0)
  81. else:
  82. print("\n💥 Config test FAILED!")
  83. sys.exit(1)