* test `parse_header_links` via public api
* add no-link test
* Update tests/test_utils.py
---------
Co-authored-by: Tom Christie <tom@tomchristie.com>
Returns the parsed header links of the response, if any
"""
header = self.headers.get("link")
- ldict = {}
- if header:
- links = parse_header_links(header)
- for link in links:
- key = link.get("rel") or link.get("url")
- ldict[key] = link
- return ldict
+ if header is None:
+ return {}
+
+ return {
+ (link.get("rel") or link.get("url")): link
+ for link in parse_header_links(header)
+ }
@property
def num_bytes_downloaded(self) -> int:
get_ca_bundle_from_env,
get_environment_proxies,
is_https_redirect,
- parse_header_links,
same_origin,
)
),
)
def test_parse_header_links(value, expected):
- assert parse_header_links(value) == expected
+ all_links = httpx.Response(200, headers={"link": value}).links.values()
+ assert all(link in all_links for link in expected)
+
+
+def test_parse_header_links_no_link():
+ all_links = httpx.Response(200).links
+ assert all_links == {}
def test_logging_request(server, caplog):