Skip to main content
Glama
test_context.py3.13 kB
"""Tests for context monitor.""" from pathfinder_mcp.context import ContextMonitor class TestContextMonitor: """Tests for ContextMonitor class.""" def test_initial_state(self, context_monitor: ContextMonitor) -> None: """New monitor starts with zero tokens.""" assert context_monitor.current_tokens == 0 assert context_monitor.get_utilization() == 0.0 assert not context_monitor.should_compact() assert not context_monitor.should_warn() def test_count_tokens(self, context_monitor: ContextMonitor) -> None: """count_tokens returns positive count for text.""" count = context_monitor.count_tokens("Hello, world!") assert count > 0 def test_add_message_tracks_tokens(self, context_monitor: ContextMonitor) -> None: """add_message increases token count.""" initial = context_monitor.current_tokens context_monitor.add_message("Test message content") assert context_monitor.current_tokens > initial def test_get_utilization_percentage(self) -> None: """get_utilization returns correct percentage.""" monitor = ContextMonitor(max_tokens=100) # Manually set tokens for testing monitor._current_tokens = 50 assert monitor.get_utilization() == 50.0 def test_should_compact_at_60_percent(self) -> None: """should_compact returns True above 60%.""" monitor = ContextMonitor(max_tokens=100) monitor._current_tokens = 59 assert not monitor.should_compact() monitor._current_tokens = 61 assert monitor.should_compact() def test_should_warn_at_70_percent(self) -> None: """should_warn returns True above 70%.""" monitor = ContextMonitor(max_tokens=100) monitor._current_tokens = 69 assert not monitor.should_warn() monitor._current_tokens = 71 assert monitor.should_warn() def test_reset_clears_tokens(self, context_monitor: ContextMonitor) -> None: """reset clears token count.""" context_monitor.add_message("Some content to add tokens") assert context_monitor.current_tokens > 0 context_monitor.reset() assert context_monitor.current_tokens == 0 def test_reset_with_initial_value(self, context_monitor: ContextMonitor) -> None: """reset can set initial token count.""" context_monitor.reset(new_token_count=500) assert context_monitor.current_tokens == 500 def test_remaining_tokens(self) -> None: """remaining_tokens calculates correctly.""" monitor = ContextMonitor(max_tokens=1000) monitor._current_tokens = 300 assert monitor.remaining_tokens == 700 def test_get_status_returns_dict(self, context_monitor: ContextMonitor) -> None: """get_status returns complete status dict.""" status = context_monitor.get_status() assert "current_tokens" in status assert "max_tokens" in status assert "utilization_percent" in status assert "should_compact" in status assert "should_warn" in status

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamesctucker/pathfinder-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server