e185b4e4dc
- price_monitor: writes live prices to both JSON and mofin.db (holdings + live_prices + portfolio_summary) - mofin_db: added execute_with_retry/commit_with_retry with exponential backoff on 'database is locked' - mofin_db: increased timeout 5s->15s, added PRAGMA busy_timeout=15000 - price_monitor retry loop: fixed break-before-if-ok bug (was not retrying on write failure) - DB connection: WAL mode + retry decorator for all write operations - cash sync: preserves DB authoritative cash (JSON cash not pushed to DB) This is the DB-first version. JSON writes remain for dashboard compatibility. Next step: remove JSON writes entirely for full DB-only architecture.
33 lines
851 B
Python
33 lines
851 B
Python
"""Verify self_todo_executor works with real DB"""
|
|
import subprocess
|
|
script = '/home/hmo/.hermes/profiles/position-analyst/scripts/self_todo_executor.py'
|
|
|
|
# Test 1: DB_PATH
|
|
content = open(script).read()
|
|
if 'web-dashboard/data/mofin.db' in content:
|
|
print("DB_PATH: OK")
|
|
else:
|
|
print("DB_PATH: WRONG")
|
|
exit(1)
|
|
|
|
# Test 2: script can import and run
|
|
try:
|
|
import importlib.util
|
|
spec = importlib.util.spec_from_file_location("executor", script)
|
|
mod = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(mod)
|
|
print("Import: OK")
|
|
except Exception as e:
|
|
print(f"Import: FAIL -> {e}")
|
|
exit(1)
|
|
|
|
# Test 3: get_pending works
|
|
try:
|
|
rows = mod.get_pending()
|
|
print(f"get_pending: OK ({len(rows)} pending)")
|
|
except Exception as e:
|
|
print(f"get_pending: FAIL -> {e}")
|
|
exit(1)
|
|
|
|
print("\nAll checks passed.")
|