diff options
author | Tim Burke <tim.burke@gmail.com> | 2019-06-25 15:43:29 -0700 |
---|---|---|
committer | Tim Burke <tim.burke@gmail.com> | 2019-06-27 16:48:33 -0700 |
commit | 113eacf3b80f61d366b3e95b558b40f82ff728a4 (patch) | |
tree | 59aeb3dcb0dc70dc00e975af5b4288f8ef32fc4e | |
parent | b52c13f648ccc0f83fa5f4308fbdf7830869c0b9 (diff) | |
download | python-swiftclient-113eacf3b80f61d366b3e95b558b40f82ff728a4.tar.gz |
Isolate docs requirements
...since modern sphinx won't install on py27.
While we're at it, clean up some warnings and treat warnings as errors.
Also, fix up how we parse test configs so we can run func tests.
Related-Change: Id3c2ed87230c5918c18e2c01d086df8157f036b1
Change-Id: I3718f69610545b0dbcb0a2ab45b400da3a45682c
-rw-r--r-- | doc/requirements.txt | 5 | ||||
-rw-r--r-- | doc/source/_static/.gitignore | 0 | ||||
-rw-r--r-- | swiftclient/multithreading.py | 8 | ||||
-rw-r--r-- | swiftclient/utils.py | 2 | ||||
-rw-r--r-- | test-requirements.txt | 3 | ||||
-rw-r--r-- | tests/functional/test_swiftclient.py | 42 | ||||
-rw-r--r-- | tox.ini | 6 |
7 files changed, 47 insertions, 19 deletions
diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..d8f432e --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,5 @@ +keystoneauth1>=3.4.0 # Apache-2.0 +sphinx!=1.6.6,!=1.6.7,<2.0.0,>=1.6.2;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD +reno>=2.5.0 # Apache-2.0 +openstackdocstheme>=1.18.1 # Apache-2.0 diff --git a/doc/source/_static/.gitignore b/doc/source/_static/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/source/_static/.gitignore diff --git a/swiftclient/multithreading.py b/swiftclient/multithreading.py index 5e03ed7..fcf0ed9 100644 --- a/swiftclient/multithreading.py +++ b/swiftclient/multithreading.py @@ -175,6 +175,14 @@ class ConnectionThreadPoolExecutor(ThreadPoolExecutor): super(ConnectionThreadPoolExecutor, self).__init__(max_workers) def submit(self, fn, *args, **kwargs): + """ + Schedules the callable, `fn`, to be executed + + :param fn: the callable to be invoked + :param args: the positional arguments for the callable + :param kwargs: the keyword arguments for the callable + :returns: a Future object representing the execution of the callable + """ def conn_fn(): priority = None conn = None diff --git a/swiftclient/utils.py b/swiftclient/utils.py index 5c17c61..87a4390 100644 --- a/swiftclient/utils.py +++ b/swiftclient/utils.py @@ -74,7 +74,7 @@ def generate_temp_url(path, seconds, key, method, absolute=False, Swift object. :param path: The full path to the Swift object or prefix if - a prefix-based temporary URL should be generated. Example: + a prefix-based temporary URL should be generated. Example: /v1/AUTH_account/c/o or /v1/AUTH_account/c/prefix. :param seconds: time in seconds or ISO 8601 timestamp. If absolute is False and this is the string representation of an diff --git a/test-requirements.txt b/test-requirements.txt index d822214..b3ca5f8 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,7 +3,4 @@ hacking>=1.1.0,<1.2.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 keystoneauth1>=3.4.0 # Apache-2.0 mock>=1.2.0 # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD stestr>=2.0.0 # Apache-2.0 -reno>=2.5.0 # Apache-2.0 -openstackdocstheme>=1.18.1 # Apache-2.0 diff --git a/tests/functional/test_swiftclient.py b/tests/functional/test_swiftclient.py index b4f275b..bae3044 100644 --- a/tests/functional/test_swiftclient.py +++ b/tests/functional/test_swiftclient.py @@ -46,11 +46,34 @@ class TestFunctional(unittest.TestCase): config.read(config_file) self.config = config if config.has_section('func_test'): - auth_host = config.get('func_test', 'auth_host') - auth_port = config.getint('func_test', 'auth_port') - auth_ssl = config.getboolean('func_test', 'auth_ssl') - auth_prefix = config.get('func_test', 'auth_prefix') - self.auth_version = config.get('func_test', 'auth_version') + if config.has_option('func_test', 'auth_uri'): + self.auth_url = config.get('func_test', 'auth_uri') + try: + self.auth_version = config.get('func_test', 'auth_version') + except configparser.NoOptionError: + last_piece = self.auth_url.rstrip('/').rsplit('/', 1)[1] + if last_piece.endswith('.0'): + last_piece = last_piece[:-2] + if last_piece in ('1', '2', '3'): + self.auth_version = last_piece + else: + raise + else: + auth_host = config.get('func_test', 'auth_host') + auth_port = config.getint('func_test', 'auth_port') + auth_ssl = config.getboolean('func_test', 'auth_ssl') + auth_prefix = config.get('func_test', 'auth_prefix') + self.auth_version = config.get('func_test', 'auth_version') + self.auth_url = "" + if auth_ssl: + self.auth_url += "https://" + else: + self.auth_url += "http://" + self.auth_url += "%s:%s%s" % ( + auth_host, auth_port, auth_prefix) + if self.auth_version == "1": + self.auth_url += 'v1.0' + try: self.account_username = config.get('func_test', 'account_username') @@ -59,15 +82,6 @@ class TestFunctional(unittest.TestCase): username = config.get('func_test', 'username') self.account_username = "%s:%s" % (account, username) self.password = config.get('func_test', 'password') - self.auth_url = "" - if auth_ssl: - self.auth_url += "https://" - else: - self.auth_url += "http://" - self.auth_url += "%s:%s%s" % (auth_host, auth_port, auth_prefix) - if self.auth_version == "1": - self.auth_url += 'v1.0' - else: self.skip_tests = True @@ -65,8 +65,10 @@ commands = {[testenv:func]commands} [testenv:docs] basepython = python3 +usedevelop = False +deps = -r{toxinidir}/doc/requirements.txt commands= - python setup.py build_sphinx + python setup.py build_sphinx -W [flake8] # it's not a bug that we aren't using all of hacking, ignore: @@ -96,6 +98,8 @@ commands = bindep test [testenv:releasenotes] basepython = python3 +usedevelop = False +deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:lower-constraints] |