feat: integrate iFinD data and refine intelligent workspaces
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user