60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import pytest
|
|
|
|
from fastmcp.server.auth.providers.debug import DebugTokenVerifier
|
|
|
|
|
|
class TestDebugTokenVerifier:
|
|
async def test_default_validator_accepts_non_empty_tokens(self):
|
|
verifier = DebugTokenVerifier(client_id="client-1", scopes=["read"])
|
|
|
|
token = await verifier.verify_token("token-123")
|
|
|
|
assert token is not None
|
|
assert token.token == "token-123"
|
|
assert token.client_id == "client-1"
|
|
assert token.scopes == ["read"]
|
|
assert token.claims == {"token": "token-123"}
|
|
|
|
@pytest.mark.parametrize("token", ["", " "])
|
|
async def test_rejects_empty_tokens(self, token):
|
|
verifier = DebugTokenVerifier()
|
|
|
|
assert await verifier.verify_token(token) is None
|
|
|
|
async def test_sync_validator_can_reject_tokens(self):
|
|
verifier = DebugTokenVerifier(validate=lambda token: token.startswith("valid-"))
|
|
|
|
assert await verifier.verify_token("invalid") is None
|
|
assert await verifier.verify_token("valid-token") is not None
|
|
|
|
async def test_async_validator_is_awaited(self):
|
|
async def validate(token: str) -> bool:
|
|
return token == "allowed"
|
|
|
|
verifier = DebugTokenVerifier(validate=validate)
|
|
|
|
assert await verifier.verify_token("denied") is None
|
|
assert await verifier.verify_token("allowed") is not None
|