
self = <tests.test_daily_summary_llm.TestDetectCrashDistribution object at 0x120bff980>
mock_settings = <MagicMock name='settings' id='4878921712'>
mock_load_inst = <MagicMock name='_load_institutional_activity' id='4878923584'>

    @patch("rtrader.utils.daily_summary_llm._load_institutional_activity")
    @patch("rtrader.utils.daily_summary_llm.settings")
    def test_extreme_all_three_signals(self, mock_settings, mock_load_inst):
        """Extreme severity when all 3 criteria met."""
        mock_settings.CRASH_DISTRIBUTION_DETECTION_ENABLED = True
    
        snaps, stealth = self._make_snapshots(
            cmf_values=[-0.1, -0.2, -0.15, -0.3, -0.25],
            patterns=[
                "Bearish Distribution Divergence",
                "Bearish Distribution",
                "Bullish Accumulation",
                "Bearish Distribution Divergence",
                "Bearish Distribution",
            ],
            stealth_scores=[30, 40, 35, 50, 500],
        )
    
        def side_effect(symbol, day):
            idx = {"2026-03-15": 0, "2026-03-16": 1, "2026-03-17": 2,
                   "2026-03-18": 3, "2026-03-19": 4}.get(
                day.isoformat() if hasattr(day, "isoformat") else str(day), 0
            )
            return {"stealth_score": stealth[idx]}
    
        mock_load_inst.side_effect = side_effect
    
        from rtrader.utils.daily_summary_llm import _detect_crash_distribution
        from datetime import date
    
        result = _detect_crash_distribution("SMCI", date(2026, 3, 19), snaps)
    
>       assert result is not None
E       assert None is not None

tests/test_daily_summary_llm.py:601: AssertionError
