diff options
author | Tim Burke <tim.burke@gmail.com> | 2018-05-16 17:33:40 +0000 |
---|---|---|
committer | Tim Burke <tim.burke@gmail.com> | 2018-07-11 13:09:00 -0700 |
commit | da362a653e9c70cb6ae17a7c3764887b4fd3fcf2 (patch) | |
tree | d705e880aff1078d8b1cb7228e629f9003bf655c | |
parent | c2c5af603f8ae25be052a20b02dc109b0f8f014a (diff) | |
download | python-swiftclient-da362a653e9c70cb6ae17a7c3764887b4fd3fcf2.tar.gz |
Back out some version bumps
I'm giving up on trying to back out all of the test-requirements
up-revs, but let's try to stay compatibile with old requests/six.
As part of that, only disable some requests warnings on new-enough requests.
Note that we should now be compatible with distro packages back to
Ubuntu 16.04 and CentOS 6. Our six is still too new for Trusty, but
hey, there's less than a year left on that anyway, right?
Change-Id: Iccb23638393616f9ec3da660dd5e39ea4ea94220
Related-Change: I2a8f465c8b08370517cbec857933b08fca94ca38
-rw-r--r-- | lower-constraints.txt | 6 | ||||
-rw-r--r-- | requirements.txt | 7 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rw-r--r-- | setup.py | 14 | ||||
-rwxr-xr-x | swiftclient/shell.py | 11 | ||||
-rw-r--r-- | tests/unit/test_shell.py | 35 |
6 files changed, 44 insertions, 31 deletions
diff --git a/lower-constraints.txt b/lower-constraints.txt index 6488b28..9aae792 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -28,14 +28,14 @@ pep8==1.5.7 PrettyTable==0.7 pyflakes==0.8.1 Pygments==2.2.0 -python-keystoneclient==3.8.0 +python-keystoneclient==0.7.0 python-mimeparse==1.6.0 python-subunit==1.0.0 pytz==2013.6 PyYAML==3.12 reno==2.5.0 -requests==2.14.2 -six==1.10.0 +requests==1.1.0 +six==1.9.0 snowballstemmer==1.2.1 sphinx==1.6.2 sphinxcontrib-websupport==1.0.1 diff --git a/requirements.txt b/requirements.txt index 6b52791..1c2ce33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,3 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD -requests>=2.14.2 # Apache-2.0 -six>=1.10.0 # MIT +requests>=1.1.0 +six>=1.9.0 @@ -34,7 +34,7 @@ data_files = [extras] keystone = - python-keystoneclient>=3.8.0 # Apache-2.0 + python-keystoneclient>=0.7.0 [entry_points] console_scripts = @@ -17,16 +17,10 @@ # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools, sys -import setuptools - -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass +if sys.version_info < (2, 7): + sys.exit('Sorry, Python < 2.7 is not supported for' + ' python-swiftclient>=3.0') setuptools.setup( - setup_requires=['pbr>=2.0.0'], + setup_requires=['pbr'], pbr=True) diff --git a/swiftclient/shell.py b/swiftclient/shell.py index e91a16f..3f66d5f 100755 --- a/swiftclient/shell.py +++ b/swiftclient/shell.py @@ -1819,9 +1819,14 @@ Examples: parser.usage = globals()['st_%s_help' % args[0]] if options['insecure']: import requests - from requests.packages.urllib3.exceptions import \ - InsecureRequestWarning - requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + try: + from requests.packages.urllib3.exceptions import \ + InsecureRequestWarning + except ImportError: + pass + else: + requests.packages.urllib3.disable_warnings( + InsecureRequestWarning) try: globals()['st_%s' % args[0]](parser, argv[1:], output) except ClientException as err: diff --git a/tests/unit/test_shell.py b/tests/unit/test_shell.py index 3db48a4..5423859 100644 --- a/tests/unit/test_shell.py +++ b/tests/unit/test_shell.py @@ -14,8 +14,8 @@ # limitations under the License. from __future__ import unicode_literals +import contextlib from genericpath import getmtime - import getpass import hashlib import json @@ -27,7 +27,6 @@ import unittest import textwrap from time import localtime, mktime, strftime, strptime -from requests.packages.urllib3.exceptions import InsecureRequestWarning import six import sys @@ -44,6 +43,10 @@ from swiftclient.utils import ( EMPTY_ETAG, EXPIRES_ISO8601_FORMAT, SHORT_EXPIRES_ISO8601_FORMAT, TIME_ERRMSG) +try: + from requests.packages.urllib3.exceptions import InsecureRequestWarning +except ImportError: + InsecureRequestWarning = None if six.PY2: BUILTIN_OPEN = '__builtin__.open' @@ -114,6 +117,20 @@ def _make_cmd(cmd, opts, os_opts, use_env=False, flags=None, cmd_args=None): return args, env +@contextlib.contextmanager +def patch_disable_warnings(): + if InsecureRequestWarning is None: + # If InsecureRequestWarning isn't available, disbale_warnings won't + # be either; they both came in with + # https://github.com/requests/requests/commit/811ee4e and left again + # in https://github.com/requests/requests/commit/8e17600 + yield None + else: + with mock.patch('requests.packages.urllib3.disable_warnings') \ + as patched: + yield patched + + @mock.patch.dict(os.environ, mocked_os_environ) class TestShell(unittest.TestCase): def setUp(self): @@ -2509,8 +2526,7 @@ class TestKeystoneOptions(MockHttpTest): _make_fake_import_keystone_client(fake_ks)), \ mock.patch('swiftclient.client.http_connection', fake_conn), \ mock.patch.dict(os.environ, env, clear=True), \ - mock.patch('requests.packages.urllib3.disable_warnings') as \ - mock_disable_warnings: + patch_disable_warnings() as mock_disable_warnings: try: swiftclient.shell.main(args) except SystemExit as e: @@ -2518,11 +2534,12 @@ class TestKeystoneOptions(MockHttpTest): except SwiftError as err: self.fail('Unexpected SwiftError: %s' % err) - if 'insecure' in flags: - self.assertEqual([mock.call(InsecureRequestWarning)], - mock_disable_warnings.mock_calls) - else: - self.assertEqual([], mock_disable_warnings.mock_calls) + if InsecureRequestWarning is not None: + if 'insecure' in flags: + self.assertEqual([mock.call(InsecureRequestWarning)], + mock_disable_warnings.mock_calls) + else: + self.assertEqual([], mock_disable_warnings.mock_calls) if no_auth: # check that keystone client was not used and terminate tests |