diff options
| author | Nate Prewitt <nateprewitt@users.noreply.github.com> | 2017-07-27 14:54:09 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-27 14:54:09 -0600 |
| commit | fdf426125b489c05b87c98a7141895aa3ade86ec (patch) | |
| tree | 0105c5b556ebc3afefc83eddd250f94c32f2e4e1 | |
| parent | 12c74567890666eac84575083d4ace6c6aeb8fb8 (diff) | |
| parent | d6b57c6fb25df19aa6fc376e3c2908afa2e3fe46 (diff) | |
| download | python-requests-fdf426125b489c05b87c98a7141895aa3ade86ec.tar.gz | |
Merge pull request #4182 from alexwlchan/idna-version
Add idna version info to requests.help
| -rw-r--r-- | HISTORY.rst | 2 | ||||
| -rw-r--r-- | requests/help.py | 5 | ||||
| -rw-r--r-- | tests/test_help.py | 19 |
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'} |
