fix(HEL-356): complete Shenwan industry signal

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总管
2026-09-09 17:59:58 +08:00
co-authored by multica-agent
parent c3881af708
commit 88411efa1c
7 changed files with 151 additions and 18 deletions
+36
View File
@@ -384,3 +384,39 @@ class MemberQuoteCoverageTests(unittest.TestCase):
self.assertEqual(snapshot["change"], 1.5)
self.assertNotIn("权限", snapshot.get("outer_error") or "")
self.assertNotIn("rt_sw_k", snapshot.get("outer_error") or "")
def test_closed_uses_complete_member_daily_when_sector_quote_is_wrong(self) -> None:
client = TushareClient(token="demo")
client.resolve_trade_context = lambda _date: ("20260909", "20260908")
client.sw_stock_industry = MagicMock(
return_value={"l2_code": "801074.SI", "l2_name": "专用设备"}
)
client._sw_sector_members = MagicMock(return_value=[
{"ts_code": "603011.SH", "name": "合锻智能"},
{"ts_code": "000821.SZ", "name": "京山轻机"},
])
client._stock_listing_reference = MagicMock(return_value={})
client._load_daily = MagicMock(return_value=[
{"ts_code": "603011.SH", "name": "合锻智能", "pct_chg": 2, "amount": 1e8},
{"ts_code": "000821.SZ", "name": "京山轻机", "pct_chg": -1, "amount": 1e8},
])
client._confirmed_suspended_members = MagicMock(return_value=[])
client.query = MagicMock(return_value=[])
client.try_sector_quote = MagicMock(return_value={
"code": "801074.SI",
"name": "托育服务",
"change": -2.19,
"quote_date": "20260909",
"quote_time": "2026-09-09T15:00:00+08:00",
"source": "eastmoney_sw",
})
snapshot = client.sw_sector_snapshot(
"603011.SH", "20260909", allow_realtime_close=True
)
self.assertTrue(snapshot["precise"])
self.assertEqual(snapshot["name"], "专用设备")
self.assertEqual(snapshot["change"], 0.5)
self.assertEqual(snapshot["outer_source"], "sw_member_equal_daily")
self.assertEqual(snapshot["outer_error"], "")