mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 20:31:27 -07:00
Fixing HTTPError case of fetch_url for Python 3 compatibility. (#45628)
* Fixing HTTPError case of fetch_url for Python 3 compatibility. * Adding unit test. * PEP8. * Changelog.
This commit is contained in:
parent
d34cf93f1a
commit
bc69aeca7f
3 changed files with 7 additions and 3 deletions
2
changelogs/fragments/45628-fetch_url-error-headers.yaml
Normal file
2
changelogs/fragments/45628-fetch_url-error-headers.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- "fetch_url did not always return lower-case header names in case of HTTP errors (https://github.com/ansible/ansible/pull/45628)."
|
|
@ -1303,7 +1303,8 @@ def fetch_url(module, url, data=None, headers=None, method=None,
|
||||||
|
|
||||||
# Try to add exception info to the output but don't fail if we can't
|
# Try to add exception info to the output but don't fail if we can't
|
||||||
try:
|
try:
|
||||||
info.update(dict(**e.info()))
|
# Lowercase keys, to conform to py2 behavior, so that py3 and py2 are predictable
|
||||||
|
info.update(dict((k.lower(), v) for k, v in e.info().items()))
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -178,13 +178,14 @@ def test_fetch_url_httperror(open_url_mock, fake_ansible_module):
|
||||||
'http://ansible.com/',
|
'http://ansible.com/',
|
||||||
500,
|
500,
|
||||||
'Internal Server Error',
|
'Internal Server Error',
|
||||||
{},
|
{'Content-Type': 'application/json'},
|
||||||
StringIO('TESTS')
|
StringIO('TESTS')
|
||||||
)
|
)
|
||||||
|
|
||||||
r, info = fetch_url(fake_ansible_module, 'http://ansible.com/')
|
r, info = fetch_url(fake_ansible_module, 'http://ansible.com/')
|
||||||
|
|
||||||
assert info == {'msg': 'HTTP Error 500: Internal Server Error', 'body': 'TESTS', 'status': 500, 'url': 'http://ansible.com/'}
|
assert info == {'msg': 'HTTP Error 500: Internal Server Error', 'body': 'TESTS',
|
||||||
|
'status': 500, 'url': 'http://ansible.com/', 'content-type': 'application/json'}
|
||||||
|
|
||||||
|
|
||||||
def test_fetch_url_urlerror(open_url_mock, fake_ansible_module):
|
def test_fetch_url_urlerror(open_url_mock, fake_ansible_module):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue