97 lines
3.7 KiB
Python
97 lines
3.7 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Test SSL configuration behavior
|
||
"""
|
||
|
||
import os
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
from tradingagents.dataflows.ssl_utils import get_ssl_config, setup_global_ssl_config
|
||
|
||
def test_ssl_config():
|
||
"""Test SSL configuration with different environment variable settings"""
|
||
|
||
print("🧪 Testing SSL Configuration Behavior")
|
||
print("=" * 50)
|
||
|
||
# Test 1: No environment variables set
|
||
print("\n1️⃣ Test: No SSL environment variables set")
|
||
os.environ.pop("REQUESTS_CA_BUNDLE", None)
|
||
os.environ.pop("CURL_CA_BUNDLE", None)
|
||
os.environ.pop("SSL_VERIFY", None)
|
||
os.environ.pop("HTTP_TIMEOUT", None)
|
||
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
config = DEFAULT_CONFIG.copy()
|
||
ssl_config = get_ssl_config(config)
|
||
print(f" SSL Config: {ssl_config}")
|
||
print(f" Expected: Empty or minimal config (default behavior)")
|
||
|
||
# Test 2: Custom certificate bundle set
|
||
print("\n2️⃣ Test: Custom certificate bundle set")
|
||
os.environ["REQUESTS_CA_BUNDLE"] = "/custom/path/ca-bundle.crt"
|
||
|
||
# Re-import to get updated config
|
||
from importlib import reload
|
||
import tradingagents.default_config
|
||
reload(tradingagents.default_config)
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
|
||
config = DEFAULT_CONFIG.copy()
|
||
ssl_config = get_ssl_config(config)
|
||
print(f" Config ssl_cert_bundle: {config.get('ssl_cert_bundle')}")
|
||
print(f" SSL Config: {ssl_config}")
|
||
print(f" Expected: cert_bundle and verify set to custom path")
|
||
|
||
# Test 3: SSL verification disabled
|
||
print("\n3️⃣ Test: SSL verification disabled")
|
||
os.environ.pop("REQUESTS_CA_BUNDLE", None)
|
||
os.environ["SSL_VERIFY"] = "false"
|
||
|
||
reload(tradingagents.default_config)
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
|
||
config = DEFAULT_CONFIG.copy()
|
||
ssl_config = get_ssl_config(config)
|
||
print(f" Config ssl_verify: {config.get('ssl_verify')}")
|
||
print(f" SSL Config: {ssl_config}")
|
||
print(f" Expected: verify set to False")
|
||
|
||
# Test 4: Timeout and proxy settings
|
||
print("\n4️⃣ Test: Timeout and proxy settings")
|
||
os.environ["HTTP_TIMEOUT"] = "60"
|
||
os.environ["HTTP_PROXY"] = "http://proxy.example.com:8080"
|
||
os.environ["HTTPS_PROXY"] = "https://proxy.example.com:8080"
|
||
|
||
reload(tradingagents.default_config)
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
|
||
config = DEFAULT_CONFIG.copy()
|
||
ssl_config = get_ssl_config(config)
|
||
print(f" Config timeout: {config.get('http_timeout')}")
|
||
print(f" Config proxies: HTTP={config.get('http_proxy')}, HTTPS={config.get('https_proxy')}")
|
||
print(f" SSL Config: {ssl_config}")
|
||
print(f" Expected: timeout and proxies in ssl_config")
|
||
|
||
# Test 5: Empty environment variables (should not be used)
|
||
print("\n5️⃣ Test: Empty environment variables")
|
||
os.environ["REQUESTS_CA_BUNDLE"] = ""
|
||
os.environ["HTTP_TIMEOUT"] = ""
|
||
|
||
reload(tradingagents.default_config)
|
||
from tradingagents.default_config import DEFAULT_CONFIG
|
||
|
||
config = DEFAULT_CONFIG.copy()
|
||
ssl_config = get_ssl_config(config)
|
||
print(f" Config ssl_cert_bundle: '{config.get('ssl_cert_bundle')}'")
|
||
print(f" Config http_timeout: {config.get('http_timeout')}")
|
||
print(f" SSL Config: {ssl_config}")
|
||
print(f" Expected: Empty values should not be used")
|
||
|
||
# Clean up
|
||
for var in ["REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE", "SSL_VERIFY", "HTTP_TIMEOUT", "HTTP_PROXY", "HTTPS_PROXY"]:
|
||
os.environ.pop(var, None)
|
||
|
||
print("\n✅ SSL configuration tests completed")
|
||
|
||
if __name__ == "__main__":
|
||
test_ssl_config() |