"""Tests for KevinRiskCounters using fakeredis.""" from decimal import Decimal import fakeredis.aioredis from services.kevin_signal_bridge.risk_counters import KevinRiskCounters async def _redis(): return fakeredis.aioredis.FakeRedis() async def test_get_daily_trades_starts_at_zero(): rc = KevinRiskCounters(await _redis()) assert await rc.get_daily_trades() == 0 async def test_increment_daily_trades_increments(): rc = KevinRiskCounters(await _redis()) n = await rc.increment_daily_trades() assert n == 1 n2 = await rc.increment_daily_trades() assert n2 == 2 assert await rc.get_daily_trades() == 2 async def test_get_daily_alloc_starts_at_zero(): rc = KevinRiskCounters(await _redis()) assert await rc.get_daily_alloc() == Decimal("0") async def test_add_daily_alloc_accumulates(): rc = KevinRiskCounters(await _redis()) await rc.add_daily_alloc(Decimal("1000")) new = await rc.add_daily_alloc(Decimal("2500")) assert new == Decimal("3500") assert await rc.get_daily_alloc() == Decimal("3500") async def test_pause_flag_default_false(): rc = KevinRiskCounters(await _redis()) assert await rc.is_trading_paused() is False async def test_set_trading_paused_with_ttl_sets_flag(): rc = KevinRiskCounters(await _redis()) await rc.set_trading_paused(ttl_seconds=60) assert await rc.is_trading_paused() is True async def test_set_trading_paused_permanent_sets_flag(): rc = KevinRiskCounters(await _redis()) await rc.set_trading_paused() assert await rc.is_trading_paused() is True