from hermes_mcp.store import get_decision_profile, init_db, list_decision_profiles, list_strategy_assignments, list_strategy_groups, table_counts, upsert_concern, upsert_decision_profile, upsert_strategy_assignment, upsert_strategy_group def test_schema_tables_exist(): init_db() counts = table_counts() assert set(counts) == { "concerns", "decision_profiles", "strategy_groups", "strategy_assignments", "cycles", "observations", "states", "narratives", "decisions", "actions", "coverage_gaps", "regime_samples", } def test_profile_group_assignment_helpers_round_trip(): upsert_decision_profile(id="profile-grid", name="Grid profile", config={"short_term_trend_min_score": 0.28, "require_release_signal_before_grid": False}) upsert_concern( id="a1:xrpusd", account_id="a1", market_symbol="xrpusd", base_currency="XRP", quote_currency="USD", strategy_id="grid-1", decision_profile_id="profile-grid", source="test", ) upsert_strategy_group(id="group-1", concern_id="a1:xrpusd", name="XRP spot cluster", strategy_family="mixed", decision_profile_id="profile-grid") upsert_strategy_assignment(id="assign-1", strategy_group_id="group-1", strategy_id="grid-1", strategy_type="grid_trader", role="primary") profile = get_decision_profile(profile_id="profile-grid") assert profile is not None assert profile["id"] == "profile-grid" assert list_decision_profiles()[0]["id"] == "profile-grid" assert list_strategy_groups(concern_id="a1:xrpusd")[0]["id"] == "group-1" assert list_strategy_assignments(strategy_group_id="group-1")[0]["id"] == "assign-1"