From: T-256 <132141463+T-256@users.noreply.github.com> Date: Tue, 16 Jan 2024 10:25:02 +0000 (+0330) Subject: test `parse_header_links` via public api (#3061) X-Git-Tag: 0.27.0~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4f6edf36e93fd9f83ff95b065718fd6bd0c4d3c5;p=thirdparty%2Fhttpx.git test `parse_header_links` via public api (#3061) * test `parse_header_links` via public api * add no-link test * Update tests/test_utils.py --------- Co-authored-by: Tom Christie --- diff --git a/httpx/_models.py b/httpx/_models.py index b8617cda..e08248a8 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -774,13 +774,13 @@ class Response: 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: diff --git a/tests/test_utils.py b/tests/test_utils.py index 2f5b2e13..0ef87d18 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -12,7 +12,6 @@ from httpx._utils import ( get_ca_bundle_from_env, get_environment_proxies, is_https_redirect, - parse_header_links, same_origin, ) @@ -80,7 +79,13 @@ def test_guess_by_bom(encoding, expected): ), ) 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):