feat: complete strategy and market data improvements

This commit is contained in:
leefer
2026-07-29 16:50:40 +08:00
parent c30d2107b3
commit 0030bb8cc1
18 changed files with 1622 additions and 162 deletions
+42
View File
@@ -76,6 +76,10 @@ class FakeMarketClient:
return []
class ConfiguredIfind:
configured = True
class MarketInsightsTests(unittest.TestCase):
def setUp(self):
self.temp = tempfile.TemporaryDirectory()
@@ -170,6 +174,44 @@ class MarketInsightsTests(unittest.TestCase):
self.assertFalse(payload["meta"]["carried_forward"])
self.assertEqual(payload["rows"], [])
def test_finalized_window_uses_and_persists_ifind_closing_snapshot(self):
service = MarketInsightsService(
self.database,
FakeMarketClient(),
now_provider=lambda: datetime(
2026, 7, 24, 9, 31, tzinfo=timezone(timedelta(hours=8))
),
ifind=ConfiguredIfind(),
)
calls = []
service._dynamic_auction_rows = lambda trade_date, baseline_date, user_id: (
calls.append((trade_date, baseline_date, user_id))
or [
{
"ts_code": "000001.SZ",
"trade_date": trade_date,
"price": 10.5,
"pre_close": 10,
"vol": 20_000,
"amount": 5_000_000,
"turnover_rate": 0.12,
"volume_ratio": 1.8,
"dynamic": True,
}
]
)
payload = service.auction_center("20260724")
cached = service.auction_center("20260724")
self.assertEqual(payload["meta"]["phase"], "finalized")
self.assertTrue(payload["meta"]["available"])
self.assertEqual(payload["summary"]["stock_count"], 1)
self.assertEqual(payload["rows"][0]["code"], "000001")
self.assertEqual(len(calls), 1)
self.assertTrue(cached["meta"]["cached"])
self.assertEqual(cached["summary"]["stock_count"], 1)
def test_theme_library_detail_and_popularity(self):
library = self.service.theme_library("20260724")
self.assertEqual(library["meta"]["trade_date"], "2026-07-23")