From 651ef5776ba74a0e757fc8da3d2790d66806551d Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Tue, 23 Jun 2026 01:32:07 +0900 Subject: [PATCH] add direct ui state test --- tools/test_build_ui_state_direct.py | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tools/test_build_ui_state_direct.py diff --git a/tools/test_build_ui_state_direct.py b/tools/test_build_ui_state_direct.py new file mode 100644 index 0000000..3b3de9d --- /dev/null +++ b/tools/test_build_ui_state_direct.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +""" +build_ui_state 각 단계 직접 테스트 +""" + +import sys +import os +sys.path.insert(0, os.getcwd()) + +# src.quant_engine 패키지를 임포트할 수 있도록 +import importlib.util +spec = importlib.util.spec_from_file_location( + "snapshot_admin_store_v1", + "src/quant_engine/snapshot_admin_store_v1.py" +) +store = importlib.util.module_from_spec(spec) +sys.modules['snapshot_admin_store_v1'] = store +spec.loader.exec_module(store) + +from pathlib import Path +from datetime import datetime +import time + +db_path = Path('src/quant_engine/snapshot_admin.db') + +print("="*80) +print("build_ui_state 각 단계 테스트") +print("="*80) + +functions_to_test = [ + ('summarize_workspace', lambda: store.summarize_workspace(db_path)), + ('load_settings_rows', lambda: store.load_settings_rows(db_path)), + ('load_account_snapshot_rows', lambda: store.load_account_snapshot_rows(db_path)), + ('validate_settings_rows', lambda: store.validate_settings_rows(store.load_settings_rows(db_path))), + ('validate_account_snapshot_rows', lambda: store.validate_account_snapshot_rows(store.load_account_snapshot_rows(db_path))), + ('load_approval_rows', lambda: store.load_approval_rows(db_path)), + ('load_locks', lambda: store.load_locks(db_path)), + ('load_change_log_rows', lambda: store.load_change_log_rows(db_path, limit=12)), +] + +for name, func in functions_to_test: + try: + start = time.time() + result = func() + elapsed = time.time() - start + if isinstance(result, list): + print(f"[OK] {name}: {len(result)} 항목, {elapsed:.2f}s") + elif isinstance(result, dict): + print(f"[OK] {name}: {len(result)} 키, {elapsed:.2f}s") + else: + print(f"[OK] {name}: {type(result).__name__}, {elapsed:.2f}s") + except Exception as e: + print(f"[ERROR] {name}: {e}") + import traceback + traceback.print_exc() + break + +print("\n[완료]")