feat: integrate iFinD data and refine intelligent workspaces
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from tushare_client import TushareClient
|
||||
|
||||
|
||||
class HotMoneyProfileClient(TushareClient):
|
||||
def query(self, api_name, params=None, fields=""):
|
||||
self.last_request = (api_name, params or {}, fields)
|
||||
if api_name != "hm_list":
|
||||
raise AssertionError(f"unexpected api: {api_name}")
|
||||
return [
|
||||
{
|
||||
"name": "赵老哥",
|
||||
"desc": "聚焦市场核心标的。",
|
||||
"orgs": "华泰证券浙江分公司;银河证券绍兴",
|
||||
},
|
||||
{
|
||||
"name": "炒股养家",
|
||||
"desc": "",
|
||||
"orgs": "华鑫证券上海宛平南路, 华鑫证券上海分公司",
|
||||
},
|
||||
{
|
||||
"name": "赵老哥",
|
||||
"desc": "重复记录不应覆盖首条档案。",
|
||||
"orgs": "重复席位",
|
||||
},
|
||||
{"name": "", "desc": "无效记录", "orgs": ""},
|
||||
]
|
||||
|
||||
|
||||
class HotMoneyProfileTests(unittest.TestCase):
|
||||
def test_directory_normalizes_profiles_and_organizations(self):
|
||||
client = HotMoneyProfileClient("token")
|
||||
payload = client.hot_money_profiles()
|
||||
|
||||
self.assertEqual(client.last_request[0], "hm_list")
|
||||
self.assertEqual(client.last_request[2], "name,desc,orgs")
|
||||
self.assertEqual(payload["meta"]["status"], "success")
|
||||
self.assertEqual(payload["summary"], {
|
||||
"profile_count": 2,
|
||||
"described_count": 1,
|
||||
"organization_count": 4,
|
||||
})
|
||||
self.assertEqual(
|
||||
payload["profiles"][0]["organizations"],
|
||||
["华泰证券浙江分公司", "银河证券绍兴"],
|
||||
)
|
||||
self.assertEqual(payload["profiles"][1]["organization_count"], 2)
|
||||
self.assertEqual(
|
||||
[item["id"] for item in payload["profiles"]],
|
||||
["hot-money-profile-1", "hot-money-profile-2"],
|
||||
)
|
||||
|
||||
def test_directory_parses_json_encoded_organization_lists(self):
|
||||
client = TushareClient("token")
|
||||
client.query = lambda *_args, **_kwargs: [
|
||||
{
|
||||
"name": "Profile",
|
||||
"desc": "",
|
||||
"orgs": '["Seat A", "Seat B", "Seat A"]',
|
||||
}
|
||||
]
|
||||
|
||||
payload = client.hot_money_profiles()
|
||||
|
||||
self.assertEqual(payload["profiles"][0]["organizations"], ["Seat A", "Seat B"])
|
||||
self.assertEqual(payload["summary"]["organization_count"], 2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user