feat: integrate iFinD data and refine intelligent workspaces
This commit is contained in:
@@ -79,6 +79,48 @@ class AccountDataBoundaryTests(unittest.TestCase):
|
||||
self.database.latest_screener_runs(self.second["id"], "20260722"), {}
|
||||
)
|
||||
|
||||
def test_latest_screener_context_runs_keep_each_stage_and_strategy(self):
|
||||
runs = [
|
||||
("smart", "repair", "Repair", "600001"),
|
||||
("smart", "repair", "Repair", "600002"),
|
||||
("smart", "retreat", "Retreat", "600003"),
|
||||
("curated", "repair", "Dividend", "600004"),
|
||||
("curated", "repair", "Momentum", "600005"),
|
||||
("quant", "repair", "Custom quant", "600006"),
|
||||
("quant", "repair", "Custom quant", "600007"),
|
||||
]
|
||||
for mode, regime, strategy, code in runs:
|
||||
self.database.save_screener_run(
|
||||
self.first["id"], "20260722", regime, strategy, FORMULA,
|
||||
{"candidates": [{"code": code}], "meta": {}}, mode,
|
||||
)
|
||||
|
||||
results = self.database.latest_screener_context_runs(
|
||||
self.first["id"], "20260722"
|
||||
)
|
||||
by_context = {
|
||||
(
|
||||
item["meta"]["mode"],
|
||||
item["meta"]["regime"] if item["meta"]["mode"] == "smart" else "",
|
||||
item["meta"]["strategy_name"] if item["meta"]["mode"] != "quant" else "",
|
||||
): item["candidates"][0]["code"]
|
||||
for item in results
|
||||
}
|
||||
|
||||
self.assertEqual(by_context, {
|
||||
("smart", "repair", "Repair"): "600002",
|
||||
("smart", "retreat", "Retreat"): "600003",
|
||||
("curated", "", "Dividend"): "600004",
|
||||
("curated", "", "Momentum"): "600005",
|
||||
("quant", "", ""): "600007",
|
||||
})
|
||||
self.assertEqual(
|
||||
self.database.latest_screener_context_runs(
|
||||
self.second["id"], "20260722"
|
||||
),
|
||||
[],
|
||||
)
|
||||
|
||||
def test_mentor_messages_are_scoped_by_user_mentor_and_date(self):
|
||||
self.database.save_mentor_exchange(
|
||||
self.first["id"], "mentor-a", "20260721", "怎么看?", "先看承接。", "20260721"
|
||||
|
||||
Reference in New Issue
Block a user