summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Burke <tim.burke@gmail.com>2018-05-16 17:33:40 +0000
committerTim Burke <tim.burke@gmail.com>2018-07-11 13:09:00 -0700
commitda362a653e9c70cb6ae17a7c3764887b4fd3fcf2 (patch)
treed705e880aff1078d8b1cb7228e629f9003bf655c
parentc2c5af603f8ae25be052a20b02dc109b0f8f014a (diff)
downloadpython-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.txt6
-rw-r--r--requirements.txt7
-rw-r--r--setup.cfg2
-rw-r--r--setup.py14
-rwxr-xr-xswiftclient/shell.py11
-rw-r--r--tests/unit/test_shell.py35
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
diff --git a/setup.cfg b/setup.cfg
index f20bbca..e4963db 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -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 =
diff --git a/setup.py b/setup.py
index 518f1d3..16a18f6 100644
--- a/setup.py
+++ b/setup.py
@@ -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