Skip to content

Commit 9d4f5a6

Browse files
authored
[rest] add case insensitive headers test (Azure#20067)
1 parent d01a468 commit 9d4f5a6

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# coding: utf-8
2+
# -------------------------------------------------------------------------
3+
# Copyright (c) Microsoft Corporation. All rights reserved.
4+
# Licensed under the MIT License. See LICENSE.txt in the project root for
5+
# license information.
6+
# -------------------------------------------------------------------------
7+
import pytest
8+
from azure.core.rest import HttpRequest
9+
10+
@pytest.mark.asyncio
11+
async def test_response_headers_case_insensitive(client):
12+
request = HttpRequest("GET", "/basic/headers")
13+
response = await client.send_request(request)
14+
response.raise_for_status()
15+
assert (
16+
response.headers["lowercase-header"] ==
17+
response.headers["LOWERCASE-HEADER"] ==
18+
response.headers["Lowercase-Header"] ==
19+
response.headers["lOwErCasE-HeADer"] ==
20+
"lowercase"
21+
)
22+
assert (
23+
response.headers["allcaps-header"] ==
24+
response.headers["ALLCAPS-HEADER"] ==
25+
response.headers["Allcaps-Header"] ==
26+
response.headers["AlLCapS-HeADer"] ==
27+
"ALLCAPS"
28+
)
29+
assert (
30+
response.headers["camelcase-header"] ==
31+
response.headers["CAMELCASE-HEADER"] ==
32+
response.headers["CamelCase-Header"] ==
33+
response.headers["cAMeLCaSE-hEadER"] ==
34+
"camelCase"
35+
)
36+
return response

sdk/core/azure-core/tests/testserver_tests/coretestserver/coretestserver/test_routes/basic.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,14 @@ def complicated_json():
6464
assert request.json["None"] == None
6565

6666
return Response(status=200)
67+
68+
@basic_api.route("/headers", methods=['GET'])
69+
def headers():
70+
return Response(
71+
status=200,
72+
headers={
73+
"lowercase-header": "lowercase",
74+
"ALLCAPS-HEADER": "ALLCAPS",
75+
"CamelCase-Header": "camelCase",
76+
}
77+
)

sdk/core/azure-core/tests/testserver_tests/test_rest_headers.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,59 @@ def test_headers_not_override():
9191
assert request.headers["Content-Length"] == "5000"
9292
assert request.headers["Content-Type"] == "application/my-content-type"
9393

94+
def test_request_headers_case_insensitive():
95+
request = HttpRequest(
96+
"PUT",
97+
"http://example.org",
98+
headers={
99+
"Content-Length": 5000,
100+
"Content-Type": "application/my-content-type"
101+
}
102+
)
103+
assert (
104+
request.headers["Content-Length"] ==
105+
request.headers["content-length"] ==
106+
request.headers["CONTENT-LENGTH"] ==
107+
request.headers["cOnTEnT-lEngTH"] ==
108+
5000
109+
)
110+
111+
assert(
112+
request.headers["Content-Type"] ==
113+
request.headers["content-type"] ==
114+
request.headers["CONTENT-TYPE"] ==
115+
request.headers["ConTENt-tYpE"] ==
116+
"application/my-content-type"
117+
)
118+
119+
def test_response_headers_case_insensitive(client):
120+
request = HttpRequest("GET", "/basic/headers")
121+
response = client.send_request(request)
122+
response.raise_for_status()
123+
assert (
124+
response.headers["lowercase-header"] ==
125+
response.headers["LOWERCASE-HEADER"] ==
126+
response.headers["Lowercase-Header"] ==
127+
response.headers["lOwErCasE-HeADer"] ==
128+
"lowercase"
129+
)
130+
assert (
131+
response.headers["allcaps-header"] ==
132+
response.headers["ALLCAPS-HEADER"] ==
133+
response.headers["Allcaps-Header"] ==
134+
response.headers["AlLCapS-HeADer"] ==
135+
"ALLCAPS"
136+
)
137+
assert (
138+
response.headers["camelcase-header"] ==
139+
response.headers["CAMELCASE-HEADER"] ==
140+
response.headers["CamelCase-Header"] ==
141+
response.headers["cAMeLCaSE-hEadER"] ==
142+
"camelCase"
143+
)
144+
return response
145+
146+
94147
# Can't support list of tuples. Will uncomment once we add that support
95148

96149
# def test_multiple_headers():

0 commit comments

Comments
 (0)