feat: REQ-028 add display_name to GET /v1/portfolios response

- Portfolio domain model + PortfolioItem schema에 display_name 필드 추가
- _SELECT_PORTFOLIO에 a.display_name JOIN 보강, _portfolio_to_item 매퍼 전달
- REQ-028 CHG-20260601-01/02: Implemented → Approved → Implemented
  - AC-13 신설 (display_name == joined assets.display_name)
- BAT-009 verification.md: AC-13 매핑 + augmentation history 누적
- REL-001 verification checklist 재실행 evidence 갱신 (368 PASSED, 로컬 smoke 5건 통과)
- tests/test_v1.py: dead 중복 GET /v1/assets 섹션 제거 (두 번째 동명 정의가 첫 번째를 override하던 잔재)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 14:00:59 +00:00
co-authored by Claude Opus 4.7
parent 136ae16885
commit 84de34c301
10 changed files with 112 additions and 151 deletions
@@ -43,16 +43,22 @@
- AC-9 (client token → 403): `test_get_client_token_returns_403` PASSED
- AC-10 (no token → 401): `test_get_no_bearer_returns_401` PASSED
- AC-11 (asset_id in response): `test_get_response_has_asset_id_field` PASSED — asset_id == _ASSET_UUID
- AC-13 (CHG-20260601-01: display_name joined assets.display_name): `tests/test_v1_portfolios_list.py::_make_portfolio(..., display_name=...)` 호환 + 전체 10 PASSED (응답 schema 확장 회귀); 로컬 smoke (2026-06-01 13:18 KST) admin DB session token으로 GET /v1/portfolios 호출, portfolios 2건 모두 `display_name:"삼성전자"` (joined `assets.display_name`)로 응답 확인.
## Evidence
- Test:
- `tests/test_v1_portfolios_crud.py`: 22 PASSED (REQ-025/026/027)
- `tests/test_v1_portfolios_list.py`: 10 PASSED (REQ-028)
- 전체 스위트: 298 PASSED, 0 FAILED (2026-05-21)
- Manual: 없음 (단위 테스트로 전 AC 커버)
- `tests/test_v1_portfolios_list.py`: 10 PASSED (REQ-028 AC-1~11 + AC-13 확장 회귀)
- 전체 스위트: 298 PASSED, 0 FAILED (2026-05-21 초기 verification)
- 전체 스위트: 368 PASSED, 0 FAILED (2026-06-01 CHG-20260601-01 augmentation 회귀)
- Manual:
- 2026-06-01 13:16~18 KST 로컬 smoke (REL-001 Verification Checklist 5개 항목): GET /v1/portfolios 응답에 `display_name` 필드 포함 확인 (relevant evidence: `docs/releases/rel-001_20260521_v1-api-full-surface.md`)
- Logs: 없음
## Augmentation History
- 2026-06-01: REQ-028 CHG-20260601-01 — GET /v1/portfolios 응답 schema에 `display_name` 필드 추가. `Portfolio` dataclass + `PortfolioItem` schema + `_SELECT_PORTFOLIO` JOIN `a.display_name` 보강. AC-13 신설, 368 PASSED 회귀 + 로컬 smoke로 응답 노출 확인. 별도 BAT 미할당 — 본 verification에 누적 기록.
## Result
- Ready for Release: true
- Blocking Issues: 없음