"""Tests for MCP per-request user_id context.""" import pytest from scribe.mcp._context import current_user_id, _user_id_ctx def test_current_user_id_raises_when_unset(): """No active context — must raise so tools don't silently fall back to a default.""" _user_id_ctx.set(None) with pytest.raises(RuntimeError, match="no MCP user context"): current_user_id() def test_current_user_id_returns_set_value(): _user_id_ctx.set(42) assert current_user_id() == 42 def test_current_user_id_isolation_via_contextvar_token(): """Reset via the token returned by set() restores prior state.""" _user_id_ctx.set(1) token = _user_id_ctx.set(2) assert current_user_id() == 2 _user_id_ctx.reset(token) assert current_user_id() == 1