File tree Expand file tree Collapse file tree 2 files changed +27
-1
lines changed
Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -48,7 +48,12 @@ def merge_headers(
4848 mapping_error_message : str ,
4949 pair_error_message : Optional [str ] = None ,
5050) -> Dict [str , str ]:
51- merged_headers = dict (base_headers )
51+ normalized_base_headers = normalize_headers (
52+ base_headers ,
53+ mapping_error_message = mapping_error_message ,
54+ pair_error_message = pair_error_message ,
55+ )
56+ merged_headers = dict (normalized_base_headers or {})
5257 normalized_overrides = normalize_headers (
5358 override_headers ,
5459 mapping_error_message = mapping_error_message ,
Original file line number Diff line number Diff line change @@ -84,3 +84,24 @@ def test_merge_headers_replaces_existing_headers_case_insensitively():
8484 assert merged ["X-API-KEY" ] == "override-key"
8585 assert "User-Agent" not in merged
8686 assert "x-api-key" not in merged
87+
88+
89+ def test_merge_headers_rejects_invalid_base_header_pairs ():
90+ with pytest .raises (HyperbrowserError , match = "headers must be a mapping" ):
91+ merge_headers (
92+ {"x-api-key" : 123 }, # type: ignore[dict-item]
93+ {"User-Agent" : "custom" },
94+ mapping_error_message = "headers must be a mapping of string pairs" ,
95+ )
96+
97+
98+ def test_merge_headers_rejects_duplicate_base_header_names_case_insensitive ():
99+ with pytest .raises (
100+ HyperbrowserError ,
101+ match = "duplicate header names are not allowed after normalization" ,
102+ ):
103+ merge_headers (
104+ {"X-Request-Id" : "one" , "x-request-id" : "two" },
105+ None ,
106+ mapping_error_message = "headers must be a mapping of string pairs" ,
107+ )
You can’t perform that action at this time.
0 commit comments