fix(market-data): 完善 Tushare 全量同步配置
This commit is contained in:
@@ -1,12 +1,19 @@
|
||||
from datetime import date
|
||||
from decimal import Decimal
|
||||
|
||||
import pytest
|
||||
|
||||
from zhixing_server.modules.market_data.domain.fingerprint import (
|
||||
SnapshotChange,
|
||||
compare_snapshots,
|
||||
snapshot_fingerprint,
|
||||
)
|
||||
from zhixing_server.modules.market_data.domain.models import Bar, Stock, SyncWindow
|
||||
from zhixing_server.modules.market_data.domain.models import (
|
||||
Bar,
|
||||
DailyBasic,
|
||||
Stock,
|
||||
SyncWindow,
|
||||
)
|
||||
from zhixing_server.modules.market_data.domain.rules import filter_current_hs_a_stocks
|
||||
|
||||
|
||||
@@ -34,6 +41,30 @@ def test_window_uses_inclusive_calendar_boundary() -> None:
|
||||
assert window.contains(date(2018, 2, 28))
|
||||
|
||||
|
||||
def test_daily_basic_maps_nan_to_none_but_rejects_infinite_values() -> None:
|
||||
row = DailyBasic.from_mapping(
|
||||
{
|
||||
"ts_code": "000001.SZ",
|
||||
"trade_date": "20240102",
|
||||
"pe": float("nan"),
|
||||
"pb": "NaN",
|
||||
}
|
||||
)
|
||||
|
||||
assert row.pe is None
|
||||
assert row.pb is None
|
||||
|
||||
for infinite_value in (float("inf"), float("-inf")):
|
||||
with pytest.raises(ValueError, match="must be finite"):
|
||||
DailyBasic.from_mapping(
|
||||
{
|
||||
"ts_code": "000001.SZ",
|
||||
"trade_date": "20240102",
|
||||
"pe": infinite_value,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def test_universe_keeps_current_non_st_hs_a_stocks() -> None:
|
||||
stocks = (
|
||||
Stock("000001.SZ", "平安银行", exchange="SZSE", list_status="L"),
|
||||
|
||||
Reference in New Issue
Block a user