DMF_Crawler/tests/README.md
Yun Chan 56a6e2da93 chore: 저장소 구조 정리 및 문서화, 첫 커밋
- src/dist 산출물 분리 원칙 정리(.gitignore, .gitattributes)
- 루트 및 주요 폴더(config/scripts/prompts/tests/src, 런타임 폴더 5종)에
  안내용 README.md 추가
- CHANGELOG.md, LICENSE, docs/ops/05-release-and-versioning.md 추가
- docs/README.md 문서 지도 갱신
2026-09-04 09:25:44 +09:00

1.9 KiB

tests/ — 테스트

이 프로젝트는 No RED, No Code로 개발한다(AGENTS.md §1). src/의 모든 기능은 여기 어딘가에 그 기능을 실패시켰던 RED가 있어야 한다.

.\.venv\Scripts\python.exe -m pytest tests -q

네트워크·실제 API 키가 필요한 테스트는 기본 실행에 포함하지 않는다(마커 network, pyproject.toml 참고). fixture/mock으로 대체하고, 실제 nedrug/공공데이터포털 호출은 사용자 승인 후 수동 smoke로 분리한다.

파일

파일 무엇을 검증하는가
conftest.py 임시 DB·설정 fixture, 네트워크 차단 fixture
test_project_contracts.py R0 계약 — 모듈이 존재하고 임포트되는지, CLI 최소 동작
test_normalize.py 원본 필드 → DmfRecord 정규화, dmf_key 안정성
test_storage_repo.py SQLite 저장소 read/write 경로, append-only 무결성
test_import_prototype_xlsx.py 기존 프로토타입 xlsx(9,084건) 임포트
test_agy_headful_collection.py AGY headful Chrome 수집 경로 — 권한 스코프, 다운로드 검증, 실패 보고
test_pipeline_preflight_ux.py 파이프라인 사전 점검과 사용자에게 보이는 문구
test_gui_design_contracts.py tkinter 온보딩 GUI 디자인 감사(레이아웃 붕괴, overflow, 라벨 누락 등)
test_report_e2e_design.py 실제 SQLite → 실제 xlsx 생성 → zip/XML 구조 감사(시트 순서, 틀고정, 조건부서식 등)
test_ux_regressions.py 실사용자 제보 회귀(cp949 콘솔, 선택 기능 정책, 버튼 가독성 등)
fixtures/ API 응답 샘플, agy 응답 봉투(정상/오염), diff 비교용 스냅샷

디자인 감사 RED의 구체 기준(무엇을 RED로 잡아야 하는가)은 docs/design/07-tdd-red-system.md R4/R5가 정본이다.