Skip to content

[Task] DART·KRX 실데이터 수집 integration 테스트 추가 #56

Description

@GoBeromsu

작업 요약

주가(KRX)·공시(DART) 실수집 경로가 테스트로 전혀 보장되지 않는다. 실제 외부 API 호출/응답 파싱을 검증하는 integration 테스트를 추가한다.

배경 (audit 결과)

사용자 질문 "주가·공시 정보를 제대로 가져오는지 실제로 테스트한 게 있나?" 에 대한 조사 결과:

  • backend/tests/ 의 수집 관련 테스트는 전부 monkeypatch mock 또는 파라미터 validation
    • test_external_api_registry.py:59-71get_trade_info 를 mock으로 교체 (실호출 검증 X)
    • test_external_api_registry.py:74-103fetch_disclosures/fetch_financials 를 mock으로 교체
  • backend/collector/krx/trade_info.pyfetch_trade_info_from_kskill/get_trade_info, backend/collector/dart.pyfetch_disclosures/fetch_financials실제 HTTP 호출로 검증하는 테스트 없음
  • 결과: OpenDART/k-skill-proxy API 스펙 변경 시 silent failure 위험. API 키 유효성·응답 파싱 정합성 미보장

완료 기준

  • DART fetch_disclosures/fetch_financials 실호출 integration 테스트 (실제 corp_code로 OpenDART 응답 파싱 검증)
  • KRX get_trade_info/종목검색 실호출 integration 테스트 (k-skill-proxy 응답 파싱 검증)
  • integration 테스트는 API 키 없거나 외부 불가 시 skip (@pytest.mark.integration 등 — CI 안정성)
  • 응답 스키마 정합성 assertion 포함

비고

  • DART_API_KEY는 .env에 설정됨 / NAVER 키는 빈 값
  • k-skill-proxy(k-skill-proxy.nomadamas.org) 제3자 의존 — rate-limit·다운 가능성 고려한 skip 전략 필요

관련 기능 ID

N/A (수집 경로 — A collector: dart.py, krx/)

담당자

A (수집·정규화)

예상 브랜치명

feature/A-collector-integration-tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/backendFastAPI backend, repositories, deterministic REST contractskind/testTest, verification, QA readiness workpriority/p2Important follow-up after P1 execution path

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions