Files
tick-stock-panel/backend/tests/test_ext_data_dimension_members.py
T
2026-07-18 00:49:28 +08:00

35 lines
1.2 KiB
Python

import polars as pl
import pytest
from fastapi import HTTPException
from app.api.ext_data import _filter_dimension_member_rows
def test_filter_dimension_member_rows_matches_complete_tags() -> None:
rows = pl.DataFrame({
"symbol": ["000001.SZ", "000002.SZ", "000003.SZ", "000004.SZ"],
"所属概念": ["人工智能;芯片", "人工智能体;机器人", "芯片 / 人工智能", None],
})
result = _filter_dimension_member_rows(rows, "所属概念", "人工智能")
assert result.get_column("symbol").to_list() == ["000001.SZ", "000003.SZ"]
def test_filter_dimension_member_rows_matches_industry_hierarchy() -> None:
rows = pl.DataFrame({
"symbol": ["000001.SZ", "000002.SZ", "000003.SZ"],
"所属行业": ["金融-银行-股份制银行", "电子-半导体-数字芯片", "电子元件"],
})
result = _filter_dimension_member_rows(rows, "所属行业", "电子")
assert result.get_column("symbol").to_list() == ["000002.SZ"]
def test_filter_dimension_member_rows_rejects_unknown_field() -> None:
rows = pl.DataFrame({"symbol": ["000001.SZ"]})
with pytest.raises(HTTPException, match="字段 '所属行业' 不存在"):
_filter_dimension_member_rows(rows, "所属行业", "银行")