Files
QuantEngineByItz/tools/test_api_settings_save.py
kjh2064 4c8c879302 WBS-9 진행: API 에러 수정 및 DB 스키마 정규화
- snapshot_admin_store_v1.py: summarize_workspace에서 account_snapshot의 captured_at 사용 (updated_at 대신)
- account_snapshot 테이블: 올바른 스키마 재정의 (ordinal PK, row_json, 핵심필드, updated_at)
- settings 테이블: 올바른 스키마 재정의 (ordinal PK, key, value_json, note, updated_at)
- initialize_snapshot_admin_db.py: XLSX에서 settings, account_snapshot을 올바른 스키마로 로드
- load_from_xlsx_correct.py: account_snapshot을 특별 처리해서 스키마 보존
- /api/settings/save: 정상 작동 (200 응답)
- build_ui_state: load_collection_dashboard_state 예외 처리 추가 (진행 중)

데이터 현황:
- kis_data_collection.db: 1 테이블 (data_feed), 25행
- snapshot_admin.db: 27 테이블, 7,501행
  * settings: 32행 (올바른 스키마)
  * account_snapshot: 44행 (올바른 스키마)

남은 작업:
- /api/state 크래시 원인 진단 및 수정
- /api/export 데이터 검증
- 웹 UI 개선 (백오피스 수준)
- T+20 모니터링 활성화
- CI/CD 백업 기능

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-23 01:21:30 +09:00

58 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""
/api/settings/save 엔드포인트 테스트
"""
import requests
import json
import time
BASE_URL = "http://localhost:5000"
print("="*80)
print("/api/settings/save 엔드포인트 테스트")
print("="*80)
# 데이터 준비
test_data = {
"rows": [
{
"ordinal": 5,
"key": "total_asset_krw",
"value": "500000000",
"note": "API 테스트 수정"
}
]
}
print(f"\n[요청] POST {BASE_URL}/api/settings/save")
print(f"[데이터] {json.dumps(test_data, ensure_ascii=False, indent=2)}")
try:
start = time.time()
response = requests.post(
f"{BASE_URL}/api/settings/save",
json=test_data,
timeout=10
)
elapsed = time.time() - start
print(f"\n[응답 시간] {elapsed:.2f}s")
print(f"[상태 코드] {response.status_code}")
if response.status_code == 200:
result = response.json()
print(f"[결과] {json.dumps(result, ensure_ascii=False, indent=2)}")
print(f"\n[OK] /api/settings/save 성공")
else:
print(f"[오류 응답]")
print(f" 상태: {response.status_code}")
print(f" 본문: {response.text[:200]}")
print(f"\n[FAIL] /api/settings/save 실패")
except Exception as e:
print(f"[ERROR] {e}")
print(f"\n[FAIL] 요청 실패")
print("\n[완료]")