test_config.py 3.6 KB

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