from app.llm.schemas import Classification from app.proactive.policy import decide FACT = Classification(True, True, False, False, False, 0.95) def test_safe_policy_allows_high_confidence_existing_fact() -> None: assert decide( "safe", FACT, is_mention=False, duplicate=False, cooldown=False, threshold=0.86 ).respond def test_policy_rejects_new_technical_decision_and_duplicates() -> None: decision = Classification(True, True, True, False, False, 0.99) assert not decide( "active", decision, is_mention=False, duplicate=False, cooldown=False, threshold=0.86 ).respond assert not decide( "safe", FACT, is_mention=False, duplicate=True, cooldown=False, threshold=0.86 ).respond def test_mentions_mode_requires_bot_mention() -> None: assert not decide( "mentions", FACT, is_mention=False, duplicate=False, cooldown=False, threshold=0.86 ).respond assert decide( "mentions", FACT, is_mention=True, duplicate=False, cooldown=False, threshold=0.86 ).respond