summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Prewitt <nateprewitt@users.noreply.github.com>2017-07-27 14:54:09 -0600
committerGitHub <noreply@github.com>2017-07-27 14:54:09 -0600
commitfdf426125b489c05b87c98a7141895aa3ade86ec (patch)
tree0105c5b556ebc3afefc83eddd250f94c32f2e4e1
parent12c74567890666eac84575083d4ace6c6aeb8fb8 (diff)
parentd6b57c6fb25df19aa6fc376e3c2908afa2e3fe46 (diff)
downloadpython-requests-fdf426125b489c05b87c98a7141895aa3ade86ec.tar.gz
Merge pull request #4182 from alexwlchan/idna-version
Add idna version info to requests.help
-rw-r--r--HISTORY.rst2
-rw-r--r--requests/help.py5
-rw-r--r--tests/test_help.py19
3 files changed, 26 insertions, 0 deletions
diff --git a/HISTORY.rst b/HISTORY.rst
index 4c6bc740..0fe72a22 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -8,6 +8,8 @@ dev
**Improvements**
+- Running ``$ python -m requests.help`` now includes the installed version of idna.
+
**Bugfixes**
2.18.2 (2017-07-25)
diff --git a/requests/help.py b/requests/help.py
index cd961c78..5440ee61 100644
--- a/requests/help.py
+++ b/requests/help.py
@@ -6,6 +6,7 @@ import platform
import sys
import ssl
+import idna
import urllib3
import chardet
@@ -84,6 +85,9 @@ def info():
cryptography_info = {
'version': getattr(cryptography, '__version__', ''),
}
+ idna_info = {
+ 'version': getattr(idna, '__version__', ''),
+ }
# OPENSSL_VERSION_NUMBER doesn't exist in the Python 2.6 ssl module.
system_ssl = getattr(ssl, 'OPENSSL_VERSION_NUMBER', None)
@@ -100,6 +104,7 @@ def info():
'urllib3': urllib3_info,
'chardet': chardet_info,
'cryptography': cryptography_info,
+ 'idna': idna_info,
'requests': {
'version': requests_version,
},
diff --git a/tests/test_help.py b/tests/test_help.py
index f08fdd97..c11d43f3 100644
--- a/tests/test_help.py
+++ b/tests/test_help.py
@@ -19,3 +19,22 @@ def test_system_ssl_py26():
def test_system_ssl():
"""Verify we're actually setting system_ssl when it should be available."""
assert info()['system_ssl']['version'] != ''
+
+
+class VersionedPackage(object):
+ def __init__(self, version):
+ self.__version__ = version
+
+
+def test_idna_without_version_attribute(mocker):
+ """Older versions of IDNA don't provide a __version__ attribute, verify
+ that if we have such a package, we don't blow up.
+ """
+ mocker.patch('requests.help.idna', new=None)
+ assert info()['idna'] == {'version': ''}
+
+
+def test_idna_with_version_attribute(mocker):
+ """Verify we're actually setting idna version when it should be available."""
+ mocker.patch('requests.help.idna', new=VersionedPackage('2.6'))
+ assert info()['idna'] == {'version': '2.6'}