feat: complete strategy and market data improvements
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user