- 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 문서 지도 갱신 |
||
|---|---|---|
| .. | ||
| fixtures | ||
| conftest.py | ||
| README.md | ||
| test_agy_headful_collection.py | ||
| test_gui_design_contracts.py | ||
| test_import_prototype_xlsx.py | ||
| test_normalize.py | ||
| test_pipeline_preflight_ux.py | ||
| test_project_contracts.py | ||
| test_report_e2e_design.py | ||
| test_storage_repo.py | ||
| test_ux_regressions.py | ||
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가 정본이다.