Skip to content

Commit 34ffc3c

Browse files
committed
Tests for retrieving MCP headers
1 parent 106be1a commit 34ffc3c

File tree

1 file changed

+94
-1
lines changed

1 file changed

+94
-1
lines changed

tests/unit/utils/test_mcp_headers.py

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
"""Unit tests for MCP headers utility functions."""
22

3-
from fastapi import Request
43
from unittest.mock import Mock
54
import pytest
65

6+
from fastapi import Request
7+
78
from utils import mcp_headers
89

910

@@ -89,3 +90,95 @@ def test_extract_mcp_headers_invalid_mcp_header_null_value():
8990
# empty dict should be returned
9091
result = mcp_headers.extract_mcp_headers(request)
9192
assert result == {}
93+
94+
95+
@pytest.mark.asyncio
96+
async def test_mcp_headers_dependency_empty_headers():
97+
"""Test the mcp_headers_dependency function for request with empty MCP-HEADERS header."""
98+
request = Mock(spec=Request)
99+
# empty MCP-HEADERS
100+
request.headers = {"MCP-HEADERS": ""}
101+
102+
# empty dict should be returned
103+
result = await mcp_headers.mcp_headers_dependency(request)
104+
assert result == {}
105+
106+
107+
@pytest.mark.asyncio
108+
async def test_mcp_headers_dependency_mcp_headers_empty():
109+
"""Test the mcp_headers_dependency function for request with empty MCP-HEADERS header."""
110+
request = Mock(spec=Request)
111+
# empty MCP-HEADERS
112+
request.headers = {"MCP-HEADERS": ""}
113+
114+
# empty dict should be returned
115+
result = await mcp_headers.mcp_headers_dependency(request)
116+
assert result == {}
117+
118+
119+
@pytest.mark.asyncio
120+
async def test_mcp_headers_dependency_valid_mcp_header():
121+
"""Test the mcp_headers_dependency function for request with valid MCP-HEADERS header."""
122+
request = Mock(spec=Request)
123+
# valid MCP-HEADERS
124+
request.headers = {"MCP-HEADERS": '{"http://www.redhat.com": {"auth": "token123"}}'}
125+
126+
result = await mcp_headers.mcp_headers_dependency(request)
127+
128+
expected = {"http://www.redhat.com": {"auth": "token123"}}
129+
assert result == expected
130+
131+
132+
@pytest.mark.asyncio
133+
async def test_mcp_headers_dependency_valid_mcp_headers():
134+
"""Test the mcp_headers_dependency function for request with valid MCP-HEADERS headers."""
135+
request = Mock(spec=Request)
136+
# valid MCP-HEADERS
137+
header1 = '"http://www.redhat.com": {"auth": "token123"}'
138+
header2 = '"http://www.example.com": {"auth": "tokenXYZ"}'
139+
140+
request.headers = {"MCP-HEADERS": f"{{{header1}, {header2}}}"}
141+
142+
result = await mcp_headers.mcp_headers_dependency(request)
143+
144+
expected = {
145+
"http://www.redhat.com": {"auth": "token123"},
146+
"http://www.example.com": {"auth": "tokenXYZ"},
147+
}
148+
assert result == expected
149+
150+
151+
@pytest.mark.asyncio
152+
async def test_mcp_headers_dependency_invalid_json_mcp_header():
153+
"""Test the mcp_headers_dependency function for request with invalid MCP-HEADERS header."""
154+
request = Mock(spec=Request)
155+
# invalid MCP-HEADERS - not a JSON
156+
request.headers = {"MCP-HEADERS": "this-is-invalid"}
157+
158+
# empty dict should be returned
159+
result = await mcp_headers.mcp_headers_dependency(request)
160+
assert result == {}
161+
162+
163+
@pytest.mark.asyncio
164+
async def test_mcp_headers_dependency_invalid_mcp_header_type():
165+
"""Test the mcp_headers_dependency function for request with invalid MCP-HEADERS header type."""
166+
request = Mock(spec=Request)
167+
# invalid MCP-HEADERS - not a dict
168+
request.headers = {"MCP-HEADERS": "[]"}
169+
170+
# empty dict should be returned
171+
result = await mcp_headers.mcp_headers_dependency(request)
172+
assert result == {}
173+
174+
175+
@pytest.mark.asyncio
176+
async def test_mcp_headers_dependency_invalid_mcp_header_null_value():
177+
"""Test the mcp_headers_dependency function for request with invalid MCP-HEADERS header type."""
178+
request = Mock(spec=Request)
179+
# invalid MCP-HEADERS - not a dict
180+
request.headers = {"MCP-HEADERS": "null"}
181+
182+
# empty dict should be returned
183+
result = await mcp_headers.mcp_headers_dependency(request)
184+
assert result == {}

0 commit comments

Comments
 (0)