net-speed-pro / tests /test_speedtest_logic.py
Trae Assistant
升级优化
3a46346
import speedtest
import unittest
import sys
class TestSpeedtestLogic(unittest.TestCase):
def test_speedtest_fallback_logic(self):
print("\nTesting Speedtest fallback logic...")
st = None
success = False
# Simulate the logic in app.py
for attempt in range(3):
print(f"Attempt {attempt+1}...")
try:
# In app.py logic:
# attempt 0: secure=True
# attempt 1: secure=True
# attempt 2: secure=False
secure_mode = True
if attempt == 2:
print('Switching to insecure mode (HTTP)...')
secure_mode = False
print(f"Initializing Speedtest(secure={secure_mode})...")
st = speedtest.Speedtest(secure=secure_mode)
print("Success!")
success = True
break
except Exception as e:
print(f"Failed: {e}")
self.assertTrue(success, "Speedtest initialization failed even with fallback")
self.assertIsNotNone(st, "Speedtest object is None")
# Verify we can get best server
print("Getting best server...")
best = st.get_best_server()
print(f"Best server: {best['host']}")
self.assertIsNotNone(best)
if __name__ == '__main__':
unittest.main()