fix: KR 등락률순위 API 파라미터 오류 수정 — 스캐너 미동작 해결 (#240)
Some checks failed
CI / test (pull_request) Has been cancelled
Some checks failed
CI / test (pull_request) Has been cancelled
실전 API가 fid_rank_sort_cls_code='0000'(4자리)를 거부함. '0'(1자리)으로 수정하고, 실전 응답의 종목코드 키가 mksc_shrn_iscd 대신 stck_shrn_iscd임을 반영하여 파싱 수정. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -354,6 +354,8 @@ class TestFetchMarketRankings:
|
||||
assert "ranking/fluctuation" in url
|
||||
assert headers.get("tr_id") == "FHPST01700000"
|
||||
assert params.get("fid_cond_scr_div_code") == "20170"
|
||||
# 실전 API는 4자리("0000") 거부 — 1자리("0")여야 한다 (#240)
|
||||
assert params.get("fid_rank_sort_cls_code") == "0"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_volume_returns_parsed_rows(self, broker: KISBroker) -> None:
|
||||
@@ -376,6 +378,27 @@ class TestFetchMarketRankings:
|
||||
assert result[0]["price"] == 75000.0
|
||||
assert result[0]["change_rate"] == 2.5
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_fluctuation_parses_stck_shrn_iscd(self, broker: KISBroker) -> None:
|
||||
"""실전 API는 mksc_shrn_iscd 대신 stck_shrn_iscd를 반환한다 (#240)."""
|
||||
items = [
|
||||
{
|
||||
"stck_shrn_iscd": "015260",
|
||||
"hts_kor_isnm": "에이엔피",
|
||||
"stck_prpr": "794",
|
||||
"acml_vol": "4896196",
|
||||
"prdy_ctrt": "29.74",
|
||||
"vol_inrt": "0",
|
||||
}
|
||||
]
|
||||
mock_resp = _make_ranking_mock(items)
|
||||
with patch("aiohttp.ClientSession.get", return_value=mock_resp):
|
||||
result = await broker.fetch_market_rankings(ranking_type="fluctuation")
|
||||
|
||||
assert len(result) == 1
|
||||
assert result[0]["stock_code"] == "015260"
|
||||
assert result[0]["change_rate"] == 29.74
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# KRX tick unit / round-down helpers (issue #157)
|
||||
|
||||
Reference in New Issue
Block a user