feat: integrate iFinD data and refine intelligent workspaces

This commit is contained in:
leefer
2026-07-28 16:38:56 +08:00
parent 6adeb54458
commit f4b2d7152a
22 changed files with 6481 additions and 389 deletions
+54
View File
@@ -0,0 +1,54 @@
from __future__ import annotations
import unittest
from ifind_client import IfindError, IfindHttpClient
class IfindClientTests(unittest.TestCase):
def test_table_rows_normalizes_single_table_payload(self):
rows = IfindHttpClient._table_rows(
{
"tables": {
"thscode": "300033.SZ",
"time": ["2026-07-28 09:30", "2026-07-28 09:31"],
"table": {"close": [10.1, 10.2], "amount": [100, 200]},
}
}
)
self.assertEqual(len(rows), 2)
self.assertEqual(rows[0]["thscode"], "300033.SZ")
self.assertEqual(rows[1]["time"], "2026-07-28 09:31")
self.assertEqual(rows[1]["close"], 10.2)
def test_table_rows_normalizes_wencai_list_payload(self):
rows = IfindHttpClient._table_rows(
{
"tables": [
{
"table": {
"股票代码": ["000001.SZ", "600000.SH"],
"股票简称": ["平安银行", "浦发银行"],
}
}
]
}
)
self.assertEqual([row["股票代码"] for row in rows], ["000001.SZ", "600000.SH"])
def test_display_date_rejects_invalid_values(self):
self.assertEqual(IfindHttpClient._display_date("20260728"), "2026-07-28")
with self.assertRaises(IfindError):
IfindHttpClient._display_date("2026-7-28")
def test_client_requires_credentials_before_request(self):
client = IfindHttpClient()
self.assertFalse(client.configured)
with self.assertRaises(IfindError):
client.real_time("000001.SH", ["latest"])
if __name__ == "__main__":
unittest.main()