"""Tests for RouterThrottleImpl.""" from i2p_router.throttle import RouterThrottleImpl, TunnelRequestStatus def test_accept_when_idle(): t = RouterThrottleImpl() assert t.accept_tunnel_request() == TunnelRequestStatus.ACCEPT def test_reject_over_max_tunnels(): t = RouterThrottleImpl() t.set_participating_count(10_001) assert t.accept_tunnel_request() == TunnelRequestStatus.REJECT_OVERLOADED def test_reject_high_bandwidth(): t = RouterThrottleImpl() t.set_bandwidth_load(0.95) assert t.accept_tunnel_request() == TunnelRequestStatus.REJECT_BANDWIDTH def test_reject_high_job_lag(): t = RouterThrottleImpl() t.set_job_lag_ms(2000) assert t.accept_tunnel_request() == TunnelRequestStatus.REJECT_TRANSIENT def test_accept_message_normal(): t = RouterThrottleImpl() assert t.accept_network_message() is True def test_reject_message_overloaded(): t = RouterThrottleImpl() t.set_bandwidth_load(0.96) assert t.accept_network_message() is False def test_reject_message_high_delay(): t = RouterThrottleImpl() t.set_message_delay_ms(3500) assert t.accept_network_message() is False def test_status_string(): t = RouterThrottleImpl() t.set_participating_count(50) s = t.get_status() assert "tunnels=50" in s assert "bw=" in s