fix: exchange-specific volume rank APIs for OKX and full top20

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-08 15:53:41 +08:00
parent 4bf0c2363f
commit 89a58c7323
8 changed files with 286 additions and 37 deletions
+12
View File
@@ -1,6 +1,8 @@
from datetime import datetime
from hub_volume_rank_lib import (
CACHE_VERSION,
_okx_turnover_usdt,
cache_needs_refresh,
format_volume_quote,
merge_exchange_rank,
@@ -26,6 +28,11 @@ def test_format_volume_quote():
assert format_volume_quote(4500) == "4.50K"
def test_okx_turnover_usdt():
qv = _okx_turnover_usdt({"volCcy24h": "100", "last": "50"})
assert qv == 5000.0
def test_cache_needs_refresh_and_merge():
cache = {"rank_date": "2026-06-05", "exchanges": {}}
assert cache_needs_refresh(cache, expected_rank_date="2026-06-07") is True
@@ -41,3 +48,8 @@ def test_cache_needs_refresh_and_merge():
)
assert merged["exchanges"]["binance"]["items"][0]["symbol"] == "BTC/USDT"
assert merged["rank_date"] == "2026-06-07"
def test_stale_cache_version_forces_refresh():
cache = {"version": CACHE_VERSION - 1, "rank_date": "2026-06-07", "exchanges": {"okx": {"items": [{}]}}}
assert cache_needs_refresh(cache) is True