From 965ada6f660a423ec259fe3ad12d24022a55d37b Mon Sep 17 00:00:00 2001 From: Remi Rampin Date: Wed, 16 Aug 2017 22:10:20 -0400 Subject: [PATCH 1/3] Fix parse_header_links on empty header --- requests/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/requests/utils.py b/requests/utils.py index 5c47de98..c52ce2d0 100644 --- a/requests/utils.py +++ b/requests/utils.py @@ -743,7 +743,7 @@ def default_headers(): def parse_header_links(value): - """Return a dict of parsed link headers proxies. + """Return a list of parsed link headers proxies. i.e. Link: ; rel=front; type="image/jpeg",; rel=back;type="image/jpeg" @@ -754,6 +754,10 @@ def parse_header_links(value): replace_chars = ' \'"' + value = value.strip(replace_chars) + if not value: + return links + for val in re.split(', *<', value): try: url, params = val.split(';', 1) From 7d190ef0108f8466e0a6b7db41b01cae944313cf Mon Sep 17 00:00:00 2001 From: Remi Rampin Date: Thu, 17 Aug 2017 12:56:38 -0400 Subject: [PATCH 2/3] Add entry in HISTORY.rst --- HISTORY.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 5e7b24a7..4694e495 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -10,6 +10,8 @@ dev **Bugfixes** +- Parsing empty ``Link`` headers with ``parse_header_links()`` no longer return one bogus entry + 2.18.4 (2017-08-15) +++++++++++++++++++ From 8e411d0f99310320463254e8a364271f64f14c78 Mon Sep 17 00:00:00 2001 From: Remi Rampin Date: Thu, 17 Aug 2017 12:56:45 -0400 Subject: [PATCH 3/3] Add test case for empty `Link:` header --- tests/test_utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_utils.py b/tests/test_utils.py index b3f398ee..32e4d4a5 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -498,6 +498,10 @@ def test_iter_slices(value, length): {'url': 'http://.../back.jpeg'} ] ), + ( + '', + [] + ), )) def test_parse_header_links(value, expected): assert parse_header_links(value) == expected